爬虫代理池的使用

代理池的作用

用于解决爬虫时访问频率过高封ip的问题

前期准备

1.需要准备一个代理池,可以自己爬取一些IP做一个代理池(简单的做法可以是把IP放到txt文件读取,也可以自己使用开源代理池代码(借用别人做的代理池,不同代码效率有差异,免费代理池一般效率不高)
放一个代理池链接:
链接:https://pan.baidu.com/s/1w6FpNgFXhP3_wWBQOM441Q
提取码:dtsx
2.安装相关的包、模块、数据库等(如redis数据库),可以在运行代理池的时候发现哪些包哪些模块没有安装,安装lAnaconda的话,基本pip install都能很快装好。

打开代理池

#定位到run.py所在路径
cd  /d   代理池中run.py文件所在路径
python  run.py

查看代理池情况

1.可以通过redis数据库管理器查看;
2.可以在浏览器网址栏中输入:http://localhost:5000/count(查看当时代理运行个数)或者http://localhost:5000/get(查看实时ip)查看。

引入到爬虫代码

# ck='_Jo0OQK=350FB9480019A6D74D27FA7C0B1211547458FA75BA03836679CA73ABCEEC4538F426538FF216748BFA4A0795355AF533CA27C126B09544AA6961ED75D34A63F170E2DF09B220C8082124ED14892373145994ED1489237314599BE994A6718907CADGJ1Z1Nw==; yfx_c_g_u_id_10003701=_ck20010219091017770687233577177; yfx_f_l_v_t_10003701=f_t_1577963350770__r_t_1577963350770__v_t_1577963350770__r_c_0; JSESSIONID=9E9A078C95D254194B441C247075C5F9'
URL = 'http://hd.chinatax.gov.cn/service/findCredit.do'
HEADER = {
    # 'cook':ck,
    'Cookie':'yfx_c_g_u_id_10003701=_ck20010213270718060327858317372; yfx_f_l_v_t_10003701=f_t_1577942827558__r_t_1578110660667__v_t_1578110660667__r_c_2; _Jo0OQK=2AC5AF2AA9DABE0A2A8F44B831C995165EBDDC6F3CCE1B2CF9493F3A06EFE8750F48CB97BF15E61F3285AA07F017918370D07A07064139D7F7D1B5500E4FB11E9952DF09B220C8082124ED14892373145994ED1489237314599BE994A6718907CADGJ1Z1ew==; JSESSIONID=198C1FAE52EFB8FA81836E25D0F67C33',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36',
}

response = requests.get('http://127.0.0.1:5000/get')
proxy={
        'http:':'http://'+response.text
    }
print('使用代理:', proxy)
r = requests.get(URL, allow_redirects=False,headers=HEADER,proxies=proxy)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章