python3.6
+ win10
Когда я очищал страницу с подробными данными, например https://ipinfo.io/AS...
от https://ipinfo.io/countries/us
, я получал другой результат из модуля запросов, иногда ресурс страницы не был завершен.
Как показано ниже, я привожу два примера:
import requests
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
}
(1) страница запроса https://ipinfo.io/AS13489
(полная)
complete_result = requests.get('https://ipinfo.io/AS13489', headers=headers)
print(complete_result.text)
Результат получить полную HTML-страницу:
<!DOCTYPE html>
<html>
<head>
...
</body>
</html>
(2) страница запроса https://ipinfo.io/AS7018
(не полная)
not_complete_result = requests.get('https://ipinfo.io/AS7018', headers=headers)
print(not_complete_result.text)
Результат просто получить не полную HTML-страницу:
</tr>
<tr class="hidden">
...
</body>
</html>
(3), кроме selenium
, не работало и в моих попытках:
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://ipinfo.io/AS7018')
browser.implicitly_wait(5)
print(browser.page_source)
Результат не завершен
256
</td>
</tr>
<tr class="hidden">
...
</iframe>
</html>
Обновите мои необходимые данные, теперь я путаюсь с тем, что иногда эти данные деталей исчезают.
![enter image description here](https://i.stack.imgur.com/SteaB.png)
Отсутствует часть содержимого HTML:
![enter image description here](https://i.stack.imgur.com/ZvfoE.png)
обновить мои коды:
import re
import requests
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
}
# s = requests.get('https://ipinfo.io/AS7018', headers=headers).text
# not work , s get a not complete html cntent.
s = requests.get('https://ipinfo.io/AS13489', headers=headers).text
asn_code, name = re.search(r'<h3 class="font-semibold m-0 t-xs-24">(?P<ASN_CODE>AS\d+) (?P<NAME>[\w.\s]+)</h3>',s).groups()
country = re.search(r'.*href="/countries.*">(?P<COUNTRY>.*)?</a>',s).group("COUNTRY")
registry = re.search(r'Registry.*?pb-md-1">(?P<REGISTRY>.*?)</p>',s, re.S).group("REGISTRY").strip()
ip = re.search(r'IP Addresses.*?pb-md-1">(?P<IP>.*?)</p>',s, re.S).group("IP").strip()
print(asn_code, name, country, registry, ip)
# AS13489 EPM Telecomunicaciones S.A. E.S.P. Colombia lacnic 3,137,536