Webscraping через BeautifulSoup - PullRequest
       4

Webscraping через BeautifulSoup

0 голосов
/ 14 января 2019

Возникает следующая ошибка - следует указать название компании - любые идеи, основанные на поиске следующего тега:

<span datatype="xsd:string" property="gazorg:name">ISCA SCAFFOLD LIMITED </span>

из следующего кода:

import requests
from bs4 import BeautifulSoup
data = requests.get('https://www.thegazette.co.uk/notice/3188283')
data.text[:1000]
soup = BeautifulSoup(data.text, 'html.parser')
soup.prettify()[:1000]
span = soup.find('span', {'property' : 'gazorg:name'})
company = span.text

Ошибка:

AttributeError                            Traceback (most recent call last)
<ipython-input-7-4449f0e20d72> in <module>
----> 1 company = span.text
AttributeError: 'NoneType' object has no attribute 'text'`enter code here`

1 Ответ

0 голосов
/ 14 января 2019

Вы получаете эту ошибку, потому что вы не установили свой User-Agent. Сайты могут по своему выбору давать разные ответы в зависимости от агента пользователя. Некоторые веб-сайты могут не дать правильный ответ, если пользовательский агент отсутствует.

Рекомендуется настроить User-Agent аналогично тому, который вы использовали при проверке сайта.

import requests
from bs4 import BeautifulSoup
headers={
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
}
data = requests.get('https://www.thegazette.co.uk/notice/3188283',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
span = soup.find('span', {'property' : 'gazorg:name'})
company = span.text
print(company)

выход

ISCA SCAFFOLD LIMITED 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...