Исходя из наивысшего разрешенного ответа, я немного изменил регулярное выражение /^[+\-]?(?=.)(?:0|[1-9]\d*)?(?:\.\d*)?(?:\d[eE][+\-]?\d+)?$/
.
Преимущества, которые это дает:
.9
(я сделал опцию (?:0|[1-9]\d*)
опционально с ?
) (?=.)
) e9
, потому что перед научной записью требуется \d
. Моя цель в том, чтобы использовать его для захвата значимых цифр и выполнения значительной математики. Поэтому я также собираюсь нарезать его такими группами: /^[+\-]?(?=.)(0|[1-9]\d*)?(\.\d*)?(?:(\d)[eE][+\-]?\d+)?$/
.
Объяснение того, как получить значимые цифры из этого:
parseFloat()
undefined
на ''
) должно дать исходный номер из которых могут быть извлечены значимые цифры. Это регулярное выражение также предотвращает совпадение нулевых нулей, которые JavaScript иногда принимает, но которые я видел, вызывают проблемы и которые ничего не добавляют к значительным цифрам, поэтому я см. предотвращение левого запаса нулей в качестве преимущества (особенно в формах). Тем не менее, я уверен, что регулярное выражение может быть изменено, чтобы сожрать левые заполненные нули.
Другая проблема, которую я вижу с этим регулярным выражением, не будет соответствовать 90.e9
или другим таким номерам. Тем не менее, я считаю, что подобные или подобные совпадения маловероятны, так как конвенция в научной нотации позволяет избежать таких чисел.
UPDATE
В моем тестировании я также поймал ошибку в том, что он может соответствовать '.'
. Таким образом, внешний вид должен быть изменен на (?=\.\d|\d)
, что приводит к окончательному регулярному выражению:
/^[+\-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:\d[eE][+\-]?\d+)?$/
JSON не может быть обнаружен , поскольку запрошенная страница (и driver.page_source
) возвращает вам HTML , в то время как вам нужно запросить JSON . Попробуйте этот код, чтобы получить требуемый вывод
import requests
print requests.get('http://example.webscraping.com/places/ajax/search.json?&search_term=a&page_size=10&page=0').json()
Если вам нужно только records
:
response = requests.get('http://example.webscraping.com/places/ajax/search.json?&search_term=a&page_size=10&page=0').json()
print response['records']
Чтобы получить названия стран:
for item in response['records']:
print item['country']
Вывод: [ 1112]
'Afghanistan'
'Aland Islands'
'Albania'
'Algeria'
'American Samoa'
'Andorra'
'Angola'
'Anguilla'
'Antarctica'
'Antigua and Barbuda'