十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
简介
创新新互联,凭借十多年的成都网站设计、成都做网站经验,本着真心·诚心服务的企业理念服务于成都中小企业设计网站有上1000家案例。做网站建设,选创新互联公司。提到爬虫,大部分人都会想到使用Scrapy工具,但是仅仅停留在会使用的阶段。为了增加对爬虫机制的理解,我们可以手动实现多线程的爬虫过程,同时,引入IP代理池进行基本的反爬操作。
本次使用天天基金网进行爬虫,该网站具有反爬机制,同时数量足够大,多线程效果较为明显。
技术路线
编写思路
首先,开始分析天天基金网的一些数据。经过抓包分析,可知:
./fundcode_search.js包含所有基金的数据,同时,该地址具有反爬机制,多次访问将会失败的情况。
同时,经过分析可知某只基金的相关信息地址为:fundgz.1234567.com.cn/js/ + 基金代码 + .js
分析完天天基金网的数据后,搭建IP代理池,用于反爬作用。点击这里搭建代理池,由于该作者提供了一个例子,所以本代码里面直接使用的是作者提供的接口。如果你需要更快速的获取到普匿IP,则可以自行搭建一个本地IP代理池。
# 返回一个可用代理,格式为ip:端口 # 该接口直接调用github代理池项目给的例子,故不保证该接口实时可用 # 建议自己搭建一个本地代理池,这样获取代理的速度更快 # 代理池搭建github地址https://github.com/1again/ProxyPool # 搭建完毕后,把下方的proxy.1again.cc改成你的your_server_ip,本地搭建的话可以写成127.0.0.1或者localhost def get_proxy(): data_json = requests.get("http://proxy.1again.cc:35050/api/v1/proxy/?type=2").text data = json.loads(data_json) return data['data']['proxy']