部分HTML而不是全部使用Soup / Selenium

时间:2018-07-20 14:45:46

标签: selenium web-scraping beautifulsoup

我一直在努力解决以下问题:

我正在尝试检索certain page的完整HTML。我设法抓过其他几个站点,但是这个站点将无法合作。

from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
import requests
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
##########################################

url = "https://fd.nl/laatste-nieuws"

driver = webdriver.Firefox()
driver.get(url)

html = driver.page_source

page_soup1 = soup(html, "html5lib")

page_soup1

输出只是HTML的一部分。当我通过Chrome浏览器检查页面时,还有更多元素。

我尝试仅将Soup与多个解析器(html.parser,html5lib和lxml)一起使用,以及在Soup之前使用Selenium,但都无济于事。

我对这一切还很陌生,因此欢迎任何提示/指南!

干杯!

1 个答案:

答案 0 :(得分:1)

似乎该网站使用的是“ cookiewall ”,只需将标题中的“ Cookie”设置为“ cookieconsent=true”,它应该可以正常工作:

from bs4 import BeautifulSoup
import requests

headers = {"Host":"fd.nl",
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Encoding":"gzip,deflate,br",
"Cookie": "cookieconsent=true",
"User-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36"}

url = "https://fd.nl/laatste-nieuws"
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.text, 'lxml')

for h1, p in zip(soup.select('h1'), soup.select('h1 ~ p')):
    print(h1.text)
    print(p.text)
    print('-' * 80)

打印:

Hogere omzet voor Nederlandse zuivelgroep A-ware
Familiebedrijf A-ware bouwt mozzarellafabriek in Heerenveen 
--------------------------------------------------------------------------------
Via negentig procedures van amorfe betonkolos tot hotel met welnesscentrum
Ook fabrieken hebben een levensduur. Niet zelden staan de gebouwen er nog, maar is de oorspronkelijke functie verdwenen. Soms krijgen ze een nieuwe bestemming. In dit eerste deel over industrieel erfgoed: meelfabriek De Sleutels in Leiden.
--------------------------------------------------------------------------------
Egyptische miljardair en oprichter Fortress Investment Group kopen voetbalclub Aston Villa
Nieuwe eigenaren Nassef Sawiris en Wes Edens hopen met hun investering Aston Villa wel snel weer op het hoogste niveau te krijgen.
--------------------------------------------------------------------------------
Greet Prins struint door Marrakesh
Een ideale agenda zonder beperkingen van tijd, afstand of geld. Deze week in de rubriek Droomweekend:  Greet Prins, voorzitter van de raad van bestuur van Philadelphia Zorg.
--------------------------------------------------------------------------------
Trump drukt op de beurs, Wall Street licht lager
Koersen op Wall Street dalen nadat Amerikaanse president heeft gezegd 'klaar te zijn om tot 500' mrd aan importheffingen te gaan.
--------------------------------------------------------------------------------

...and so on