您现在的位置是:主页 > news > 上海广告公司电话/深圳网络seo推广

上海广告公司电话/深圳网络seo推广

admin2025/5/15 15:36:08news

简介上海广告公司电话,深圳网络seo推广,网页设计与制作工资多少,网络营销的模式有哪些?当同一ip短时间内多次链接同一网站,很可能导致ip被封,为了避免远程服务器封锁IP,或者想加快爬取速度,一个可行的方法就是使用代理IP,我们需要做的就是创建一个自己的代理IP池。 思路 1.从代理网站爬取IP地址及端口号…

上海广告公司电话,深圳网络seo推广,网页设计与制作工资多少,网络营销的模式有哪些?当同一ip短时间内多次链接同一网站,很可能导致ip被封,为了避免远程服务器封锁IP,或者想加快爬取速度,一个可行的方法就是使用代理IP,我们需要做的就是创建一个自己的代理IP池。 思路 1.从代理网站爬取IP地址及端口号…

       当同一ip短时间内多次链接同一网站,很可能导致ip被封,为了避免远程服务器封锁IP,或者想加快爬取速度,一个可行的方法就是使用代理IP,我们需要做的就是创建一个自己的代理IP池。

思路

1.从代理网站爬取IP地址及端口号并存储 (以西刺代理为例)
2.验证ip能否使用并将能使用的IP和端口号存储起来
3.从代理池中随机选择一个IP进行爬去验证

具体实现

1.爬取代理

from urllib import request
from bs4 import BeautifulSoup
import bs4
import re
import pandas as pdstart_url = "http://www.xicidaili.com/nn"
# 模拟真实浏览器进行访问
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063'
}
page = request.Request(start_url, headers=headers)
page_info = request.urlopen(page).read()
#page_info = page_info.decode('utf-8')from lxml import etree
html = etree.HTML(page_info)#存储所有的URL列表
all_url=html.xpath('//tr[@class="odd"]/td/text()')
all_url2=html.xpath('//table[@id="ip_list"]/tr/td/text()')#ip地址
list_1=html.xpath('//table[@id="ip_list"]/tr/td[2]/text()')
#端口号
list_2=html.xpath('//table[@id="ip_list"]/tr/td[3]/text()')#IP和端口汇总数据
list_all=[]
for i in range(len(list_1)):list_all.append(list_1[i]+":"+list_2[i])

输出如下

2.验证ip能否使用

####检测代理地址是否可用
import telnetlib
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063'
}
print("共计{}个代理地址".format(len(list_all)))#检测IP是否可用,把可用的IP筛选出来
proxy=[]
for i in range(len(list_all)):try:telnetlib.Telnet(list_1[i], port=list_2[i], timeout=20)except:print('{}:{}检测失败'.format(list_1[i],list_2[i]))else:print('{}:{}检测成功'.format(list_1[i],list_2[i]))proxy.append([list_1[i]+":"+list_2[i]])
print("检测完毕")

输出结果:

 

3.随机选择代测试

import numpy as np
import pandas  as pd
random_ip=np.random.choice(pd.DataFrame(proxy)[0].values)
proxy = {'http':random_ip}
proxyHeader = request.ProxyHandler(proxy) 
# 创建Opener
opener = request.build_opener(proxyHeader)
# 安装Opener
request.install_opener(opener)
# 然后剩下的就跟正常使用差不多,只不过此时的request已经是绑定了代理之后的request
url = 'https://www.taobao.com/'
req = request.Request(url)
response = request.urlopen(req)
print(response.read().decode())

理IP爬去网络