美文网首页爬虫专题python数据分析
Python爬取代理IP,并存入数据库。

Python爬取代理IP,并存入数据库。

作者: matianhe | 来源:发表于2017-08-03 16:56 被阅读0次

    这篇文章主要内容是对西刺网站上的免费IP进行爬取和验证,来保证对其他项目的需求。

    通过查看元素,ip地址、端口、类型都可以在一个tr里找到。


    目标网站
    • 爬取ip,端口,协议三个信息,并放入队列,等待检查加入数据库。
    def get_info(self, q):
        page = 1
        while True:
            url = 'http://www.xicidaili.com/nn/%d' % (page)
            req = requests.get(url, headers=self.header)
            soup = BeautifulSoup(req.text, 'lxml')
            trs = soup.find('table', id='ip_list').find_all('tr')
            for tr in trs[1:]:
                ip = tr.contents[3].text
                port = tr.contents[5].text
                procotol = tr.contents[11].text
                q.put((ip, port, procotol.lower()))
            page += 1
    
    
    • 从队列中取出信息,并用它访问一个网站,如果成功把它存到数据库中为可用IP。
    def check(self, q, lock):
        while True:
            data = q.get()
            try:
                req = requests.get('http://www.baidu.com',
                                   proxies={'%s' % (data[2]): '%s://%s:%s'
                                             % (data[2], data[0], data[1])},
                                   timeout=2, headers=self.header,
                                   cookies=self.cookie)
                if req.status_code == 200:
                    print(data)
                    tools.i_ip(data)
                else:
                    print('not200', data)
            except Exception as e:
                print(e, 'erro', data)
                pass
    

    GitHub开源地址:https://github.com/matianhe/crawler

    相关文章

      网友评论

        本文标题:Python爬取代理IP,并存入数据库。

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