我正在尝试使用scrapy制作网络抓取工具,但由于它使用Python2,我遇到了很多问题。是否可以同时对tarball中的所有文件运行2to3命令?这会导致不可预测的错误吗?是否有一个替代的Web刮刀框架,它更新,更具功能性,可能会被推荐?
我之所以这么说是因为在表格上似乎没有太多关于运行0.24版scrapy所固有问题的活动,即它是用python 2编写的。
如果抓斗是最好的选择,移植是一个坏主意,在我的面向python3的机器上运行它的最佳方法是什么?一个命令只能用python 2运行它,或者我可以在配置文件或诸如此类的东西中更改。
更新
如果您遇到此类问题,您需要做的是:
只需使用setup.py
运行python2
脚本,即
python2 setup.py install
你很高兴,之后它会起作用。
^由@alecxe
指示答案 0 :(得分:1)
将Scrapy
移植到Python 3的问题是Scrapy
是built-in on top of twisted
事件驱动框架,目前is not yet there。
在Python 3上没有与Scrapy
一样大且成熟的网络抓取框架。尽管pyspider
看起来很有前景,但它有点不同,请参阅:
此外,还有其他与支持Python 3的web-scraping和html-parsing相关的库:
beautifulsoup4
lxml
requests
MechanicalSoup
(建立在requests
和BeautifulSoup
之上)selenium