美文网首页
利用代理ip和多线程爬取信息

利用代理ip和多线程爬取信息

作者: 此间不留白 | 来源:发表于2017-12-04 22:03 被阅读32次

前言

在上篇文章中,讲述了如何获取代理ip,当获取了足够多的代理ip之后,可以使用代理ip更高效的爬取网络信息,同时,当爬取大规模的数据时,利用多线程可以实现更快的爬取速度,现在总结一下如何在自己的爬虫中使用代理ip和多线程

代理ip的利用

上次爬取代理ip之后,发现这些ip信息有两种类型,分别是http和https,那么相对应的对于这两种不同类型的ip,应该分别做不同的处理.
详细代码如下,返回值为一字典:

def proxys():
    url = "http://www.xicidaili.com/"

    ips_list = get_ips(url) #获取代理ip的函数,返回值为一列表
    proxy_ip = random.choice(ips_list) #在列表中随机的获取一代理ip
'''
如果ip信息为http开始,构建http类型的字典,反之,构建https类型的字典
'''
    if proxy_ip.startswith('http'):  
        proxies = {'http':proxy_ip}
    elif proxy_ip.startswith('https'):
        proxies = {'https':proxy_ip}
    return proxies

最后,再request.get函数中的使用如下:

wb_data = requests.get(url=pages_url,headers=headers,proxies=proxys())

多线程的利用

首先,导入多线程所需要的库

from multiprocessing import Pool

多线程的实现代码如下:

    pool = Pool(6)
    pool.map(get_all_links_from,channel_list)
    pool.close() #关闭进程池(pool),使其不在接受新的任务。
    pool.join() #主进程阻塞等待子进程的退出,join方法必须在close或terminate之后使用

在以上代码中,我们实例化了一个Pool类的对象,并为其分配了六个线程,
然后调用了map函数.
注意: map()函数有两个参数,第一个为多线程执行的函数,另一参数为一迭代器,在本例中,我们使用的是一列表类型的参数.

相关文章

  • 人生不得已——Python爬虫 代理ip

    反爬情况利用代理ip进行爬取

  • 利用代理ip和多线程爬取信息

    前言 在上篇文章中,讲述了如何获取代理ip,当获取了足够多的代理ip之后,可以使用代理ip更高效的爬取网络信息,同...

  • day71-代理ip的使用

    1代理ip 在爬取网页过程中,经常遇到爬取次数过于频繁而被封ip地址,这个时候想要再次爬取就要使用代理ip来爬取网...

  • 爬取代理西刺ip

    写了一个可以从西刺中爬取代理ip的小爬虫,本来加上ip代理测试和代理爬取网站的,不过代理ip一直无效,不知道是什么...

  • 爬虫(2)--- 构建简单代理IP池

    目录 1. 何为代理IP池?2. 代理IP池构建2.1 浏览器伪装2.2 代理IP爬取2.3 代理IP验证2.4 ...

  • 代理

    同一ip单位时间访问次数过多,被封ip,需要借助代理伪装ip进行爬取。 代理设置 request设置代理 sele...

  • 利用python爬取赶集网二手货物数据

    前言: 在之前的文章中,简单的利用python爬取了代理ip的数据,在这篇文章中讲述一下利用之前用到的爬虫技术爬取...

  • 免费代理ip爬虫

    免费代理ip爬取(仅供参考!别干坏事哦) 使用Crawler4j开源工具爬取整个网站 快代理 西刺代理 89代理 ...

  • 构建自己的IP代理池

    爬取代理网站,检验代理ip效果并写入文档 主要进步:构造headers头,构造代理请求requests,多线程。 ...

  • js逆向之全网代理IP的爬取

    之前搭建IP代理池的时候爬取过全网代理IP,全网代理IP免费的代理虽然只有首页的20个代理,但是可用程度非常高,可...

网友评论

      本文标题:利用代理ip和多线程爬取信息

      本文链接:https://www.haomeiwen.com/subject/cpyfixtx.html