BeautifulSoup/Scrapy:beautifulsouphtml与Firefox中查看的源html不同

2024-06-16 10:56:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python、BeautifulSoup和Scrapy都是新手,所以我不能100%确定如何描述我遇到的问题。你知道吗

我想抓取“下一步”按钮提供的url,你可以看到in this image,它在图像链接“tiff”或“jpeg”旁边。你知道吗

问题是“下一页”(以及随后的页面中的“上一页”)链接似乎没有通过我提供给scrapy的url呈现出来。当我让一个朋友查看url时,她告诉我她没有看到链接。我通过打印与标记id“description”关联的bs对象来确认这一点:

description = soup.find('div', {'id':'description'} )

因为我从LOC网站的搜索中生成了这个页面,所以我想我必须向我的spider传递一些东西来指示搜索参数。我尝试了here建议的解决方案,通过更改referer,但仍然不起作用:

DEFAULT_REQUEST_HEADERS = {
        'Referer': 'www.loc.gov/pictures/collection/fsa/search/?co=fsa&q=1935&st=grid'
        }

当我运行spider,确认referer已经更新时,我得到以下输出日志:

2018-07-31 15:41:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.loc.gov/robots.txt> (referer: www.loc.gov/pictures/collection/fsa/search/?co=fsa&amp;q=1935&amp;st=grid)
2018-07-31 15:41:37 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://www.loc.gov/pictures/resource/fsa.8a07028/?co=fsa> (referer: www.loc.gov/pictures/collection/fsa/search/?co=fsa&amp;q=1935&amp;st=grid)

如果有人能帮忙,我会非常感激的。你知道吗


Tags: urlsearch链接wwwdescriptionloccollectionfsa
1条回答
网友
1楼 · 发布于 2024-06-16 10:56:46

AFAICT,该站点使用会话存储搜索服务器端的历史记录。你知道吗

搜索是从类似yours的URL启动的。你知道吗

但是,当访问图像URL之后,您的会话是活动的(通过您的cookies),网站呈现下一个/上一个链接。如果找不到会话,则找不到(但您仍然可以看到该页)。你可以证明这一点,删除你的饼干后,最初的搜索,并看着它消失时,你刷新。。。你知道吗

您需要告诉Scrapy首先进入搜索URL,然后爬行搜索结果,确保cookie middleware is enabled。你知道吗

相关问题 更多 >