java中的接口是类吗
1515
2022-08-31
利用python爬虫(案例5)--X刺代理的小IP们
学习笔记
爬取X刺代理的小IP们
学完代理,我们发现网上找的很多免费代理IP都用不了,所以这里写一个简单的测试小案例,爬取一下某代理IP网站的免费代理IP,再遍历测试到底这些代理IP能不能用,哪些能用。
爬取步骤
获取要爬取的代理IP网站地址(-*- coding: utf-8 -*-import requestsfrom lxml import etreefrom fake_useragent import UserAgentimport timeimport csv class IpSpider: def __init__(self): self.url = ' def get_ua(self): return UserAgent().random def get_page(self): headers = {'User-Agent':self.get_ua()} res = requests.get(self.url, headers = headers) html = res.content.decode('utf-8') print('url:', res.url) print('code:', res.status_code) #print(html) self.get_ip_list(html) def get_ip_list(self, html): html_parse = etree.HTML(html) xpath = '//table[@id="ip_list"]//tr' r_list = html_parse.xpath(xpath) #print(r_list) proxy_list = [] for p in r_list[1:20]: my_ip = p.xpath('./td[2]/text()')[0] my_port = p.xpath('./td[3]/text()')[0] #print('代理IP:', my_ip) proxy_list.append( {'my_port), 'my_port)}) self.test_ip(proxy_list) def test_ip(self, proxy_list): useful_proxy = [] for proxy in proxy_list: print(proxy) headers = {'User-Agent':self.get_ua()} try: res = requests.get(self.url, headers = headers, proxies = proxy, timeout = 4) #如果请求超过3秒没有相应则默认该代理不能用 except Exception as e: print('此代理IP无法使用......') else: useful_proxy.append(proxy) print(proxy) self.write_ip(useful_proxy) def write_ip(self, proxy_list): with open('./test/my_test_proxy.csv', 'w', newline = '') as f: writer = csv.writer(f) writer.writerow(['' for item in proxy_list: writer.writerow([item['item[' def main(self): self.get_page() if __name__ == '__main__': start = time.time() spider = IpSpider() spider.main() end = time.time() print('执行时间:%.2f' % (end-start))
部分结果:
此代理IP无法使用......{'''''''https://115.223.64.38:8010'}此代理IP无法使用......执行时间:70.16
可用的代理IP
我们打开存放可用代理IP的csv文件,看一下有哪些IP:
http,httpshttp://125.126.117.30:60004,https://125.126.117.30:60004http://125.126.113.184:60004,https://125.126.113.184:60004http://112.16.217.191:808,https://112.16.217.191:808
好了,这个小案例完结…
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~