标签:
其中的html代码类似这样:
‘‘‘
<li>
<div class="ip">IP</div>
<div class="port">端口</div>
<div class="type">类型</div>
<div class="addr" style="text-align:center;">地址</div>
</li>,
<li>
<div class="ip">211.48.77.58</div>
<div class="port">3128</div>
<div class="type">透明</div>
<div class="addr">韩国 CZ88.NET</div>
</li>
‘‘‘
以下代码可直接保存为xxx.py 执行
#!/usr/bin/python
#coding:utf-8
import re
import httplib
from bs4 import BeautifulSoup
def main():
get_proxy()
def get_proxy():
httpClient = httplib.HTTPConnection("www.cz88.net",80,False,5) #创建连接
httpClient.request("GET","/proxy/") #创建请求
response = httpClient.getresponse() #发起请求并返回HTTPResponse对象
body = response.read()
soup = BeautifulSoup(body) #BeautifulSoup封装返回文本
ul = soup.find_all(‘ul‘) #找到所有的ul标签(需提前在浏览器中分析你需要的内容在哪)
ipul = ul[4] #ip列表的li #其中下表为4的ul是我需要的含有ip列表的ul
ipli = ipul.find_all(‘li‘) #找到其中的li标签(一层一层往下解析)
ip_list = []
port_list = []
type_list = []
addr_list = []
for li in ipli[1:]: #为什么从1开始?下表为0的是我不需要的,你可以打印出来看看
for li_div in li.children:
class_temp = li_div.attrs[‘class‘][0].encode(‘utf-8‘)
contents_temp = li_div.contents[0].encode(‘utf-8‘).strip()
if class_temp == ‘ip‘:
ip_list.append(contents_temp)
elif class_temp == ‘port‘:
port_list.append(contents_temp)
elif class_temp == ‘type‘:
type_list.append(contents_temp)
elif class_temp == ‘addr‘:
addr_list.append(contents_temp)
else:
pass
for ip,port in zip(ip_list,port_list): #其中没有打印type和addr,需要的自己打印
print ip+":"+port
#fw = open("test.html","w") #打开文件,以写的方式(如果没有就创建),为之前调试写入
#fw.write(body) #写入网站返回的文本(不包括头)
#fw.close()
httpClient.close() #关闭网站连接
if __name__ == ‘__main__‘:
main()
标签:
原文地址:http://www.cnblogs.com/xccnblogs/p/4826067.html