怎么使用ip池导用爬小说
1、利用IP代理池技术,每次从IP代理池中随机选择一个IP代理来爬取数据。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import urllib.request
import random
#构建IP代理池
ip_pool = [
\'58.221.55.58:808\',
\'120.198.248.26:8088\',
\'221.229.166.55:8080\',
\'139.196.214.67:8080\'
]
def ip(ip_pool, url):
#从IP代理池中随机选一个IP代理
ip = random.choice(ip_pool)
print(ip)
#格式化IP代理格
proxy = urllib.request.ProxyHandler({\'http\': ip})
#装入IP代理
opener = urllib.request.build_opener(proxy, urllib.request.HTTPHandler)
return urllib.request.urlopen(url).read().decode(\'utf-8\', \'ignore\')
data = ip(ip_pool, \';ch=15\')
print(data)
2、使用IP代理池和用户代理的组合来增加访问量,更安全。利用ip代理的动态ip构建自己的代理ip池,可以保证ip的质量。
因为ip代理的ip资源是独立有效的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import urllib.request
import random
import urllib.error
#自定义UA_IP类,用来随机得到
def UA_IP(thisUrl):
#构建用户代理池
ua_pool = [
\'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36\',
\'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1 QQBrowser/6.9.11079.201\',
\'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)\',
\'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0\'
]
#构建ip代理池
ip_pool = [
\'139.196.196.74\',
\'112.124.47.21\',
\'61.129.70.109\',
\'221.229.166.55\'
]
thisUA = random.choice(ua_pool) #从用户代理池中随机选择一个用户代理
thisIP = random.choice(ip_pool) #从IP代理池中随机选择一个IP代理
headers = (\'User-Agent\', thisUA) #构造报头
#将IP格式化
proxy = urllib.request.ProxyHandler({\'http\': thisIP})
#装入IP代理
opener = urllib.request.build_opener(proxy, urllib.request.HTTPHandler)
#装入代理
opener.addheaders = [headers]
#将opener设置为全局
urllib.request.install_opener(opener)
#从网页爬取信息
data = urllib.request.urlopen(thisUrl).read().decode(\'utf-8\', \'gnore\')
return data
#网页池,后面从网页池中选择一个进行该网页信息的爬取
urls = [
\'\',
\'\',
\'\',
\'\'
]
#爬取1000次
for i in range(0, 1000):
try:
thisUrl = random.choice(urls)
data = UA_IP(thisUrl)
print(len(data))
except urllib.error.HTTPError as e:
if hasattr(e, \'code\'):
print(e.code)
if hasattr(e, \'reason\'):
print(e.reason)
以上就是爬虫使用ip代理池的方法,推荐大家使用品易http代理ip,千万ip资源百兆带宽,保证爬虫数据传输安全。提供高匿稳定代理ip服务,方便快捷获取网站数据,流量免费测试正在进行!
爬取免费IP,建立自己的爬虫IP池
建立一个自己的IP池还是有很多作用的,比如可以解决爬虫过程中的封IP的问题,当然对我来说,没爬过反爬很严重的网站,还没有遇到过封IP的时候,但是也想弄一个自己的IP池
免费IP的一大缺点是不稳定,很多都用不了,所以如果需求很大的话还是使用付费的更好。对我的IP池来说免费的已经足够了
本文主要实现了爬取免费IP并保存到本地,简单验证IP有效性,并且讲解了如何使用代理IP访问网页
完整的源码在我的GitHub:
GitHub - free-proxy-crawling: self-made ip pool stored in SQLite3, crawling free proxies from websites that offer them.
从一些提供免费IP的网站中抓取IP的功能用最基本的Python爬虫实现,爬取的网站有三个:
只爬取http的高匿IP,先将IP构造成 ip:port 的字符串形式存放在 temp_set 这个集合中,然后用Python自带的pickle库保存到本地
获取到了IP之后,有很多IP是无效的,我们可以运行一个检测程序,看所用的IP是否能够成功访问百度:
IP池最简单的一种使用方式就是刷浏览量了,比如,刷文章的浏览量,,,还有,墨墨背单词每日分享的页面,浏览量可以增加单词上限。这些用处还是挺吸引人的吧~
使用代理IP访问网页主要有两种方法,如果是用 requests 库,那么方法为:
也可以使用 selenium 库,方法为:
获取IP代理地址的两种方法
有两种方法可以获得代理IP,代理IP可以帮助我们更换计算机ip,有了代理IP之后就可以解决IP限制问题。许多人不知道如何找到代理IP,下面给大家简单介绍一下。
获取代理IP的两种方法:
1.直接在网上搜索: 现在很多平台都提供免费的代理IP,只要直接在网上搜索就能找到,但是免费代理的缺点是需要验证获得的IP,提取起来很麻烦,很费时。
2.购买付费代理IP: 付费代理IP也可以在网上找到。相对免费,虽然需要花钱,但是获得的IP不需要检测就可以直接使用,使用方便,切换IP快。
以上是获取代理IP的两种主要方式。如果只是偶尔使用,可以选择免费的。如果需要经常使用或者工作,建议选择付费的,可以节省很多时间,提高工作效率。