
qq:800819103
在线客服,实时响应
qq群
在线客服,实时响应
客服电话
400-998-9776转3微信拥有非常庞大的用户量,微信平台让自媒体这个行业成为了一门专门的职业,公众号每天产生了海量的文章,如果我们想要爬取这些文章数据,那么应该怎么执行呢?代理IP的使用是必不可少的,下面我们看看具体操作。
使用搜狗搜索爬取微信文章时由于官方有反爬虫措施,不更换代理容易被封,所以使用更换代理的方法爬取微信文章。
步骤:
(1)分析网页结构,拿到网页请求参数
(2)构造请求参数,获取索引页内容:
def get_index(keyword, page):
data = {
'query': keyword,
'type': 2,
'page': page
}
queries = urlencode(data)
url = base_url + queries
html = get_html(url)
return html
(3)主要讲下代理IP的实现方法,先设置本地IP为默认代理,定义获取代理池IP地址的函数,当爬取出现403错误的时候更改代理,在获取网页源代码的时候传入代理IP地址,若获取网页源代码失败再次调用 get_html() 方法,再次进行获取尝试。
#初始化代理为本地IP
proxy = None
#定义获取代理函数
def get_proxy():
try:
response = requests.get('PROXY_POOL_URL')
if response.status_code == 200:
return response.text
return None
except ConnectionError:
return None
#添加代理获取网页内容
def get_html(url, count=1):
print('Crawling', url)
print('Trying Count', count)
global proxy
if count >= MAX_COUNT:
print('Tried Too Many Counts')
return None
try:
if proxy:
proxies = {
'http': 'http://' + proxy
}
response = requests.get(url, allow_redirects=False, headers=headers, proxies=proxies)
else:
response = requests.get(url, allow_redirects=False, headers=headers)
if response.status_code == 200:
return response.text
if response.status_code == 302:
# Need Proxy
print('302')
proxy = get_proxy()
if proxy:
print('Using Proxy', proxy)
return get_html(url)
else:
print('Get Proxy Failed')
return None
except ConnectionError as e:
print('Error Occurred', e.args)
proxy = get_proxy()
count += 1
return get_html(url, count)
(4)使用 pyquery 获取详情页详细微信文章信息(如:微信文章标题、内容、日期、公众号名称等):
def parse_detail(html):
try:
doc = pq(html)
title = doc('.rich_media_title').text()
content = doc('.rich_media_content').text()
date = doc('#post-date').text()
nickname = doc('#js_profile_qrcode > div > strong').text()
wechat = doc('#js_profile_qrcode > div > p:nth-child(3) > span').text()
return {
'title': title,
'content': content,
'date': date,
'nickname': nickname,
'wechat': wechat
}
except XMLSyntaxError:
return None
(5)存储到MongoDB,去重操作:
def save_to_mongo(data):
if db['articles'].update({'title': data['title']}, {'$set': data}, True):
print('Saved to Mongo', data['title'])
else:
print('Saved to Mongo Failed', data['title'])
以上就是用代理IP爬取微信文章的具体流程以及重点代码部分,如果大家在进行爬取的时候遇到问题可以反馈给我们,一起探讨。
对于常用代理IP来进行爬虫的工作者来说,Python 2实在是太熟悉不过了。但是你知道这款编程语言即将要停止更新、维护了吗?官方的不再运营又会不会对使用带来什么影响?下面,机灵代理为大家
IP检测的方法有哪些?由于IP会失效,最好在使用之前要先进行IP的检测,如果没有用了,也就没有必要再使用来访问,不然还白浪费时间。
网络中可以使用代理服务器的次数很多,对于经常接触网络的人来说应该并不陌生。
想大量发帖如何突破IP限制?很多平台为了用户体验,以及自身的利益,很多都是有限制的,例如IP限制,这是比较常见的。
要用最新代理服务器找谁好?很多网友都使用过代理的,代理,通俗一点来说就是代为处理的意思。那么代理服务器是指什么呢?下面小编来为大家延伸一下最新代理服务器的原理和用途。
市面上代理IP服务商那么多,为什么总是看到网上很多关于代理IP的差评。都是主要围绕着IP质量来吐槽,不同的代理服务商所提供的IP,质量是不一样的。下面我们一起来了解一下这个话题。