爬虫专题python数据分析

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

2017-08-03  本文已影响0人  matianhe

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

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


目标网站
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

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

上一篇 下一篇

猜你喜欢

热点阅读