gpt4 book ai didi

python - 为什么在尝试使用请求库进行网络抓取时,我得到的正文标签内容为空?

转载 作者:行者123 更新时间:2023-12-04 07:32:54 24 4
gpt4 key购买 nike

我一直在尝试使用 requests 和 Beautifulsoup python 库在网站上使用网络抓取。问题是我正在获取网页的 html 数据,但正文标签内容为空,而在网站的检查面板上却不是。有谁能解释为什么会这样,我该怎么做才能获取正文内容?

这是我的代码:

from bs4 import BeautifulSoup
import requests

source = requests.get('https://webaccess-il.rexail.com/?s_jwe=eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0..gKfb7AnqhUiIMIn0PGb35g.SUsLS70gBec9GBgraaV5BK8hKyqm-VvMSNjP3nIumtcrj9h19zOkYjaBHrW4SDL10DjeIcwQcz9ul1p8umMHKxPPC-QZpCyJbk7JQkUSqFM._d_sGsiSyPF_Xqs2hmLN5A#/store-products-shopping-non-customers').text
soup = BeautifulSoup(source, 'lxml')
print(soup)

这是网站的检查面板:

enter image description here

这是我的代码的输出:

enter image description here

谢谢你:)

最佳答案

有两个原因导致您的代码无法运行。第一个是,该网站确实需要额外的 headercookie 信息,您可以尝试使用 Inspect Browser Tool 找到这些信息并通过

添加
requests.get(url, headers=headers, cookies=cookies)

headerscookies 是字典。

另一个我认为是的原因是,内容是在构建端后通过 Javascript 动态加载的,而您得到的是最初加载的网站。

为了也为您提供解决方案,我附上了一个使用 Selenium 的示例,它模拟了一个完整的浏览器,它确实为整个网站提供服务,但是 selenium 有一些设置开销,您可以轻松地用谷歌搜索。

from time import sleep
from selenium import webdriver
from bs4 import BeautifulSoup
url = 'https://webaccess-il.rexail.com/?s_jwe=eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0..gKfb7AnqhUiIMIn0PGb35g.SUsLS70gBec9GBgraaV5BK8hKyqm-VvMSNjP3nIumtcrj9h19zOkYjaBHrW4SDL10DjeIcwQcz9ul1p8umMHKxPPC-QZpCyJbk7JQkUSqFM._d_sGsiSyPF_Xqs2hmLN5A#/store-products-shopping-non-customers'
driver = webdriver.Firefox()
driver.get(url)
sleep(10)
content = driver.page_source
soup = BeautifulSoup(content)

如果你想让浏览器模拟不可见你可以添加

from selenium.webdriver.firefox.options import Options
options = Options()
options.headless = True
driver = webdriver.Firefox(options=options)

这将使它在后台运行。

除了 Firefox,您还可以使用几乎所有使用适当驱动程序的浏览器。

可在此处找到基于 Linux 的设置示例 Link

关于python - 为什么在尝试使用请求库进行网络抓取时,我得到的正文标签内容为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67871777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com