内容简介:这是坚持技术写作计划(含翻译)的第14篇,定个小目标999,每周最少2篇。背景: 房租到期了。需求: 找到便宜,交通便利的房源,了解当前租房行情,便于砍价。
这是坚持技术写作计划(含翻译)的第14篇,定个小目标999,每周最少2篇。
背景: 房租到期了。
需求: 找到便宜,交通便利的房源,了解当前租房行情,便于砍价。
在爬取58,赶集,链家,安居客的数据时,被封是常事,基于此,fork并修改了两个库。用于抓取免费代理ip,用于支持爬取租房数据。
注意:租房网站的数据,大概率失真,仅做参考。
其中部分数据截图
本文只介绍Scrapy的ip代理中间件,不多讲如何爬取租房网站数据以及数据分析,后边可能会写。
获取代理ip
如果有付费的代理ip更好,如果没有的话,可以用我构建的 docker 镜像
docker run -p8765:8765 -d anjia0532/ipproxy-dockerfile
稍等2-5分钟,访问 http://${docker ip}:8765/ ,如果有值,则抓取代理ip成功。
scrapy-proxies-tool
安装
pip install scrapy-proxies-tool
配置
修改 Scrapy settings.py,源 repo 只支持从文件读取代理ip
# Retry many times since proxies often fail
RETRY_TIMES = 10
# Retry on most error codes since proxies fail for different reasons
RETRY_HTTP_CODES = [500, 503, 504, 400, 403, 404, 408]
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.retry.RetryMiddleware': 90,
'scrapy_proxies.RandomProxy': 100,
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
}
PROXY_SETTINGS = {
# Proxy list containing entries like
# http://host1:port
# http://username:password@host2:port
# http://host3:port
# ...
# if PROXY_SETTINGS[from_proxies_server] = True , proxy_list is server address (ref https://github.com/qiyeboy/IPProxyPool and https://github.com/awolfly9/IPProxyTool )
# Only support http(ref https://github.com/qiyeboy/IPProxyPool#%E5%8F%82%E6%95%B0)
# list : ['http://localhost:8765?protocol=0'],
'list':['/path/to/proxy/list.txt'],
# disable proxy settings and use real ip when all proxies are unusable
'use_real_when_empty':False,
'from_proxies_server':False,
# If proxy mode is 2 uncomment this sentence :
# 'custom_proxy': "http://host1:port",
# Proxy mode
# 0 = Every requests have different proxy
# 1 = Take only one proxy from the list and assign it to every requests
# 2 = Put a custom proxy to use in the settings
'mode':0
}
可以通过爬取 http://myip.ipip.net/ 来判断代理ip是否生效。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
写给大忙人看的C++
【美】Brian Overland(布莱恩.奥弗兰德) / 卢涛、李颖 / 电子工业出版社 / 2015-8 / 109.00
《写给大忙人看的C++》全面介绍了C++语言知识,既提供了学习C++语言最新功能的捷径,也为快速找到特定问题的答案提供了便利。《写给大忙人看的C++》简明地描述了C++核心语言和标准库中几乎所有的函数、对象和运算符,一目了然地显示了语法、结构和重要函数的信息,内容组织形式便于快速查找信息。《写给大忙人看的C++》精选了实用的例子来深入地讲解概念,还提供了富有挑战性的练习及参考答案,便于读者举一反三......一起来看看 《写给大忙人看的C++》 这本书的介绍吧!