Не удалось получить 'href' из тега привязки - PullRequest
0 голосов
/ 09 января 2019

Через элемент inspect на веб-странице я могу правильно видеть ссылку для тега привязки, например, Image for that, но когда я пытаюсь получить его с помощью супа, он дает мне результат как Image of output (soup). Я пробовал lxml и html5lib, но не смог найти никакого решения.

Ответы [ 2 ]

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

Мне удалось получить href, указав User-Agent в заголовках. Сайт может быть спроектирован так, чтобы давать разные ответы различным браузерам. Лучше использовать User-Agent, похожий на браузер, который вы использовали для проверки страницы.

import requests
from bs4 import BeautifulSoup
url='https://co.jim-hogg.tx.us/index.php/bids/278-solid-waste-resedential-collection-disposal-bids'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
r = requests.get(url, headers=headers)
soup=BeautifulSoup(r.text,'html.parser')
print(soup.find("div",{"itemprop":"articleBody"}).a['href'])

выход

http://www.jimhoggcounty.net/files/BIDS/Notice%20for%20bids%20on%20Solid%20Waste%20Residential%20%26%20CommercialCollection.pdf

Примечание:
Мой регион был заблокирован сайтом, поэтому мне пришлось использовать прокси для получения ответа. Я удалил этот дополнительный код.

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

У меня была похожая проблема, некоторые фрагменты html-страницы, которые я просматривал, были загружены неправильно. Я закончил соскоб с PhantomJS через Selenium. Вот пример . И еще один .

Есть также dryscape , который я никогда не использовал, но мог бы добиться цели.

...