小编lea*_*yUI的帖子

scrapy中的动态start_urls

我正在使用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?谢谢.

web-crawler scrapy

12
推荐指数
1
解决办法
9145
查看次数

scrapy用户超时导致连接失败

我使用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,两者都给我上面的错误.

python scrapy

7
推荐指数
1
解决办法
6554
查看次数

scrapy单个spider将多个项目类传递给管道

我是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传递给管道的最佳方法是什么?

scrapy

3
推荐指数
1
解决办法
3667
查看次数

如果安装了url打开facebook messenger app,否则打开web messenger

我正在寻找一个单独的URL来打开不同设备上的facebook messenger聊天会话:

  • 在移动设备上,如果安装了fb messenger app,则会打开fb-messenger:// user-thread /
  • 在移动设备上,如果未安装fb messenger app,则会打开http://m.me/
  • 在桌面上,它打开http://m.me/

示例:对于Google地图,我只需要使用href ="http://www.google.com/maps/place/{{lat}},{{lng}}",如果已安装,它会自动打开Goog​​le地图应用,否则它在浏览器上打开谷歌地图.

谢谢.

facebook facebook-messenger

3
推荐指数
1
解决办法
1万
查看次数