import requests
from bs4 import BeautifulSoup
from lxml import etree
url = "http://www.xicidaili.com/nn/{}"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6"}
# 记录次数
http_url = "http://www.baidu.com"
num = 0
# 我们循环10页抓取
for p in range(1, 11):
re = requests.get(url.format(p), headers=headers)
html =etree.HTML(re.content)
all_trs = html.xpath('//table[@id="ip_list"]')[0]
tr_list = all_trs.xpath("//tr")[1:] # 去掉标题
for tr in tr_list:
# 提取ip
ip = tr.xpath('./td[2]/text()')[0]
# 提取端口
port = tr.xpath('./td[3]/text()')[0]
# proxy_info['address'] = tr.xpath('./td[4]/a/text()').extract()[0]
# 提取速度
speed = tr.xpath('./td[7]/div/@title')[0]
speed = (speed.split("秒"))[0] # 从中把数字数据提取出来
# 提取类型(http或者https)
type = tr.xpath('./td[6]/text()')[0]
# 把延迟速度小于2秒的存入数据可
if float(speed)<2:
# print("爬取的ip", ip, port, type, speed)
proxy_ip = type+"://"+ip+":"+port
# print(proxy_ip)
try:
proxy_dict = {
type: proxy_ip
}
print("****************")
print(proxy_dict)
print(http_url)
response = requests.get(http_url, proxies=proxy_dict)
print(response)
print("---------------")
except Exception as e:
print("invalid ip and port", ip, port, type, e)
else:
code = response.status_code
if code == 200:
print("有效", ip, port, type)
爬取西刺ip
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 经过本人的测试, 知名的网站基本上都会封禁西刺代理上的ip,当然也不排除有漏网之鱼, 如果大家要大量爬取知名网站的...