又一个python web抓取应用程序
scrapemeagain的Python项目详细描述
刮测增益
scrapmeagain是一个python 3驱动的web scraper。它使用多线程(^{
安装
pip install scrapemeagain
系统要求
使用Docker
和Docker Compose
是
使用scrapmeagain。
如果不使用Docker
,则必须在系统上手动安装和设置Tor
和Privoxy
。有关安装和配置的详细信息,请参阅:
- A step-by-step guide how to use Python with Tor and Privoxy
- Crawling anonymously with Tor in Python(alternative link (Gist))
用法
您必须提供自己的数据库表描述和实际的scraper类,该类必须遵循BaseScraper
接口。有关详细信息,请参见examples/examplescraper
。
停靠
使用Docker,可以同时使用多个ToR IP,除非滥用,否则可以更快地收集数据。
最简单的方法是复制examples/examplescraper
,然后更新、重命名、扩展等scraper和相关类。
刮刀必须定义config.py
和main_dockerized.py
。这两个名称在整个代码库中都是硬编码的。
scrapemeagain-compose.py
动态创建一个docker-compose.yml
来编排scraper实例。其思想是,第一个scraper(scp1
)是一个master
scraper,因此是通过http进行通信的两个helper服务的主机(请参见^{
- 获取Docker主机IP
ip addr show docker0
note您的docker接口名可能与docker0不同。
- 在Docker主机IP上运行
examplesite
python3 examples/examplescraper/examplesite/app.py 172.17.0.1
note您的Docker主机IP可能与172.17.0.1不同。
- 开始
docker-compose
scrapemeagain-compose.py -s $(pwd)/examples/examplescraper -c tests.integration.fake_config | docker-compose -f - up
注意提供了一个特殊的配置文件路径:-c tests.integration.fake_config
。这是,仅用于测试/演示目的。您不必为实际/生产刮刀提供特定的配置。
局部
- 运行
examplesite
python3 examples/examplescraper/examplesite/app.py
- 开始
examplescraper
python3 examples/examplescraper/main.py
注意您可能需要更新PYTHONPATH
,例如export PYTHONPATH=$PYTHONPATH:$(pwd)/examples
。
开发
使用最新更改简化运行集成测试:
用
image: scp:latest
替换image: dusanmadar/scrapemeagain:x.y.z
在scrapemeagain/dockerized/docker-compose.yml
模板中并确保在运行测试之前在本地重建图像,例如
docker build . -t scp:latest; python -m unittest discover -p test_integration.py
传统型
python 2.7版本的scrapmeagain也提供地理编码功能,可在legacy
分支下使用,不再维护。