本项目为异步批量爬取豆瓣电影页面(如《功夫》)和新浪美股网站的爬虫,支持代理IP池、SQLite数据库存储,基于httpx+SQLAlchemy异步ORM实现。
uv add httpx[http2] beautifulsoup4 sqlalchemy aiosqlite aiohttp需本地或远程部署jhao104/proxy_pool或兼容API,默认API地址为http://127.0.0.1:5010/get/,可在config.py中修改。
config.py:可配置代理池API、User-Agent池、并发数等参数。
- 使用SQLite,数据库文件为
movies.db,表结构见db.py。
uv run main.py https://movie.douban.com/subject/1291543/uv run main.py url1 url2 url3 ...uv run main.py https://movie.douban.com/subject/1291543/ --proxyuv run main.py --sina-us-stockuv run main.py --sina-us-stock --sina-url "https://vip.stock.finance.sina.com.cn/usstock/ustotal.php"urls:待爬取的电影页面URL列表,支持多个--proxy:启用代理池;默认使用直连模式--sina-us-stock:爬取新浪美股数据--sina-url:指定新浪美股数据的URL(默认为https://vip.stock.finance.sina.com.cn/usstock/ustotal.php)
main.py:程序入口,批量调度crawler.py:豆瓣电影爬虫主逻辑,异步并发sina_us_stock.py:新浪美股爬虫主逻辑db.py:数据库ORM模型与操作proxy_pool.py:代理池API集成config.py:全局配置
- 豆瓣有反爬机制,建议合理设置并发数与请求间隔
- 代理池需保证高可用性,否则爬取效率受影响
- 仅供学习与研究使用,请勿用于非法用途