我正在使用scrapy来抓取网站上的多个页面.该变量start_urls用于定义要爬网的页面.我最初会从第一页开始,因此start_urls = [1st page]在文件中定义example_spider.py
从第一页获得更多信息后,我将确定要抓取的下一页是什么,然后start_urls相应地进行分配.因此,我必须覆盖上面的example_spider.py并进行更改start_urls = [1st page, 2nd page, ..., Kth page],然后再次运行scrapy crawl.
这是最好的方法还是有更好的方法来动态分配start_urls使用scrapy API而不必覆盖example_splider.py?谢谢.
我使用scrapy下载图像但出现超时错误:
Retrying <GET http://www/***.jpg> (failed 1 times): User timeout caused connection failure
Run Code Online (Sandbox Code Playgroud)
但是,我可以立即用wget下载图像.DOWNLOAD_TIMEOUT(scrapy参数)设置为默认值180秒,因此这不应该是错误的根本原因.我尝试过使用代理和非代理的scrapy,两者都给我上面的错误.
我是scrapy的新手.在items.py中,我声明了2个名为ItemClass1和ItemClass2的ItemClass.一个蜘蛛方法parseUrl获取html和scrape数据并放入各个Item Classes的列表中.
e.g:
C1Items = []
C1Item = ItemClass1()
#scrape data
C1Items.append(C1Item)
...
C2Items = []
C2Item = ItemClass2()
#scrape data
C2Items.append(C2Item)
...
Run Code Online (Sandbox Code Playgroud)
最后:C1Items和C2Items包含所需的数据.
return C1Items #will pass ItemClass1 data to pipeline
return C2Items #will pass ItemClass2 data to pipeline
Run Code Online (Sandbox Code Playgroud)
你能否告诉我们将C1Items,C2Items传递给管道的最佳方法是什么?
我正在寻找一个单独的URL来打开不同设备上的facebook messenger聊天会话:
示例:对于Google地图,我只需要使用href ="http://www.google.com/maps/place/{{lat}},{{lng}}",如果已安装,它会自动打开Google地图应用,否则它在浏览器上打开谷歌地图.
谢谢.