繁体   English   中英

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

[英]BeautifulSoup/Scrapy: different BeautifulSoup html from Source HTML viewed in Firefox

我是Python,BeautifulSoup和Scrapy的新手,所以我不确定100%如何描述我遇到的问题。

我想抓取您在此图片中看到的“下一个”按钮所提供的网址,它位于图片链接“ tiff”或“ jpeg”旁边。

问题在于,“下一页”(以及后续页面中的“上一页”)链接似乎没有通过我提供给scrapy的网址来展示。 当我请一个朋友检查URL时 ,她告诉我没有看到链接。 我通过打印与标签id'desciption'相关的bs对象来确认这一点:

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

因为我是通过LOC网站上的搜索生成此页面的,所以我认为我必须将某些内容传递给我的Spider来指示搜索参数。 我通过更改引荐来源尝试了此处建议的解决方案,但仍然无法正常工作:

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

运行我的Spider时,得到以下输出日志,确认引荐来源网址已更新:

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)

如果有人可以提供帮助,我将非常感激。

AFAICT,该站点使用会话来存储您的搜索服务器端的历史记录。

搜索从像一个URL启动你的

但是随后访问图像URL时,您的会话处于活动状态(通过cookie),并且该网站呈现下一个/后退链接。 如果未找到会话,则不会(但是您仍然可以看到该页面)。 您可以通过在初始搜索后删除cookie来证明这一点,并在刷新后观看它消失。

您需要告诉Scrapy首先进入搜索URL,然后搜寻结果,确保已启用cookie中间件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM