当我从urllib2 + bs4切换到Scrapy时,我注意到Scrapy在默认设置中“巧妙处理”了一些问题。如果我错的话,我不太确定我是对还是不正确。
(1)默认情况下,Scrapy不会抓取重复的网址,那么什么是重复的网址?我注意到在Scrapy抓取的URL中,没有"fragment" or "named anchor",例如,他们将下面的链接视为相同。我知道这是合乎逻辑的,因为它们实际上是同一页面但是....我不知道对于某些可能需要此功能的人来说这是不是一个好主意。
www.abc.com/page1
www.abc.com/page1#top
www.abc.com/page2#bot
(2)默认情况下,Scrapy会关注仅在a or area tag下的链接。如果它错过了LINK标签下的一堆URL,我不是Web开发人员,但可能有其他标签可能包含不在默认设置中的URL。
我不是在批评Scrapy这里只是想确保我写下的这两个发现是真实的而不是我偏见的误解和希望可能对那些想要链接标签下的URL或想要命名锚点的人有所帮助。
谢谢!
答案 0 :(得分:0)
关于您的第二点(问题?),关于a
或area
标签以外的链接,请参阅this page in the Scrapy documentation。要点是,您可以通过将tags
传递给SgmlLinkExtractor()
来指定要查找链接的标记,其中tags
是字符串列表,默认为('a', 'area')
。< / p>