代理服务器ip如何爬取指定网站?

最新资讯发布日期:2021-03-06

image.png

该代码是根据上一个爬行代理知识产权代码写的。当我们从国内高匿代理知识产权网站爬到生存时间相对较长的知识产权地址,即知识产权地址已存入知识产权时,我们可以使用爬行知识产权作为代理知识产权,进一步爬行网站所需的知识产权。

实现代码如下:

from bs4 import BeautifulSoup
import re
import time
import requests
import random
from fake_useragent import UserAgent

def get_ip_list():
f = open('IP.txt','r')
ip_list = f.readlines()
# print(ip_list)
f.close()
return ip_list

def get_random_ip(ip_list):
proxy_ip = random.choice(ip_list)
proxy_ip = proxy_ip.strip('\n')
proxies = {'https': proxy_ip}
return proxies

def get_content(url, ip_list):
print("get_content函数执行!")
try:
try:
time.sleep(1)
proxies = get_random_ip(ip_list)
headers = {'User-Agent':str(UserAgent().random)}
print(proxies)

req = requests.get(url=url, proxies=proxies,headers=headers,timeout=20)#, proxies=proxies,headers=headers,timeout=20
print("requests请求成功")
except:
print("重新运行")
time.sleep(10)
proxies = get_random_ip(ip_list)
headers = {'User-Agent':str(UserAgent().random)}
req = requests.get(url=url, proxies=proxies,headers=headers,timeout=40)
except:
print("第二次重新运行")
time.sleep(15)
proxies = get_random_ip(ip_list)
headers = {'User-Agent':str(UserAgent().random)}
req = requests.get(url=url, proxies=proxies,headers=headers)
req.encoding = 'utf-8'
soup = BeautifulSoup(req.text, 'lxml')


ips = soup.find_all('tr')
ip_final_list = []
for i in range(1, len(ips)):
ip_info = ips[i]
tds = ip_info.find_all('td')
if not tds[7].find('div',class_='bar_inner fast') == None:
#out = re.findall('<td>(.*?)</td>', str(tds[8]))
if tds[8].text.find('天') != -1:
tb = tds[8].text
tb = tb[:-1]
if int(tb) > 10:
ip_final_list.append(tds[1].text + ':' + tds[2].text)
#print(out)
return ip_final_list
if __name__ == '__main__':

for i in range(1,2):
url = 'http://www.xicidaili.com/wt/{}'.format(i)
ip_list = get_ip_list()

for ip in get_content(url, ip_list):

f2 = open('NewFile.txt','a+')

f2.write('http://'+ip)
f2.write('\n')
f2.close()

在此放一个截图,满足的IP地址类似于:

image.png

如果不同时满足两个条件,如何获得连接时间,如果是绿色的呢?这要观察其要素。我观察到,所有绿色的class都是bar_inerfast,可以再放一张屏幕截图,说明清楚。

image.png

橙色和黄色的class分别是bar_inermedium和bar_inerslow,可以根据class的价格来判断是否是必要的IP地址。

大家如果想使用代理服务器ip爬取到想要的指定网站,不妨利用上述代码进行尝试下,希望对大家所有帮助!

挂件 关闭
客服
二维码
客服二维码

加微信 领流量

大客户经理二维码

售前咨询,企业定制

专属客服竭诚为您服务