Почему grequests.get () возвращает None? - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь автоматически получить MAC-адреса для некоторых поставщиков в Python. Я нашел веб-сайт , который действительно полезен, но я не могу получить доступ к его информации из Python. Когда я запускаю это:

import grequests

rs = (grequests.get(u) for u in ['https://aruljohn.com/mac/000000'])
requests = grequests.map(rs)
for response in requests:
    print(response)

Он печатает None. Кто-нибудь знает, как это решить?

1 Ответ

0 голосов
/ 05 июня 2019

Похоже, проблема не в том, чтобы установить user-agent в headers. Я смог request веб-сайт без каких-либо проблем. Я просто использовал обычный python request, но он должен нормально работать с grequests. Я думаю, вы можете найти более активную библиотеку. Вы можете проверить aiohttp. Очень активный, и у меня был замечательный опыт использования aiohttp.

import requests

from lxml import html

def request_website(mac):
    url = 'https://aruljohn.com/mac/' + mac

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'
    }
    r = requests.get(url, headers=headers)
    return r.text

response = request_website('000000')
tree = html.fromstring(response)
results = tree.cssselect('.results p')[0].text
print (results)
...