在我们使用Python爬虫获取所需资源时,如果被发现违规行为,有可能会被对方服务器禁止本地ip访问,所以获取代理ip与端口进行访问可以预防部分危险,但是一个一个搜索查找代理ip与端口,程序效率太低,因此使用程序获取代理ip与端口是一个好选择。
1 import urllib.request 2 import re 3 4 # 正则匹配规则 5 regip = "<td>((?:(?:1[0-9][0-9]\.)|(?:2[0-4][0-9]\.)|(?:25[0-5]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){3}(?:(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5])|(?:[1-9][0-9])|(?:[0-9])))</td>" 6 regport = "<td>(\d{2}|\d{3}|\d{4}|\d{5})</td>" 7 8 # 伪装浏览器头信息 9 header = ("User-Agent",‘Mozilla/5.0 (compatible; MSIE 9.0; windows NT 6.1; TrIDent/5.0‘) 10 opener = urllib.request.build_opener() 11 opener.addheaders = [header] 12 urllib.request.install_opener(opener) 13 14 15 # 从https://www.xicIDaili.com/wn网站获取代理ip16 def get_ip(m=0,i=1): 17 url = "https://www.xicIDaili.com/wn/"+str(i) 18 data = urllib.request.urlopen(url).read().decode("utf-8","ignore") 19 ListIp = re.compile(regip).findall(data) 20 return ListIp[m] 21 22 23 # 从https://www.xicIDaili.com/wn网站获取代理端口24 def get_port(m=0,i=1): 25 url = "https://www.xicIDaili.com/wn/"+str(i) 26 data = urllib.request.urlopen(url).read().decode("utf-8","ignore") 27 ListPort = re.compile(regport).findall(data) 28 return ListPort[m]
值得一提的是,其中的m值为网站的页码数,i表示第几条数据,使用时尽量使ip与port的i值相同。
由于https://www.xicIDaili.com/wn/网页的布局,所以i尽量不要超过100.当然,参数i和m也不能出现负数。
具体怎么导入,怎么使用,相信不需要我多说了,都是基础中的基础。
总结以上是内存溢出为你收集整理的python获取代理ip与端口全部内容,希望文章能够帮你解决python获取代理ip与端口所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)