在python中接受cookie后抓取网页
Posted
技术标签:
【中文标题】在python中接受cookie后抓取网页【英文标题】:Scraping web page after accepting cookies in python 【发布时间】:2021-10-25 15:48:15 【问题描述】:我正在尝试抓取一个网页,但在访问该页面之前,有一个接受 cookie 的横幅。我正在使用 selenium 单击“接受所有 cookie”按钮,但即使单击该按钮后,我也无法访问正确的 html 页面。
这是我的代码:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup
url = 'https://www.wikiparfum.fr/explore/by-name?query=dior'
driver = webdriver.Chrome(executable_path=DRIVER_PATH)
driver.get(url)
driver.find_element_by_id('onetrust-accept-btn-handler').click()
html = driver.page_source
soup = BeautifulSoup(html, 'lxml')
print(soup)
这是打印的 HTML 页面的开头:
如果有人能帮我解决这个问题,谢谢!
【问题讨论】:
【参考方案1】:您应该等待接受 cookie 按钮元素出现,然后再单击它
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup
url = 'https://www.wikiparfum.fr/explore/by-name?query=dior'
driver = webdriver.Chrome(executable_path=DRIVER_PATH)
wait = WebDriverWait(driver, 20)
driver.get(url)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "#onetrust-accept-btn-handler"))).click()
html = driver.page_source
soup = BeautifulSoup(html, 'lxml')
print(soup)
【讨论】:
以上是关于在python中接受cookie后抓取网页的主要内容,如果未能解决你的问题,请参考以下文章
Python中的HTMLParsercookielib抓取和解析网页从HTML文档中提取链接图像文本Cookies
使用需要单击“我同意cookies”按钮的Python(美丽的汤)抓取网页?