时间:2021-05-22
前提:
python3.4
windows
作用:通过搜狗的微信搜索接口http://weixin.sogou.com/来搜索相关微信文章,并将标题及相关链接导入Excel表格中
说明:需xlsxwriter模块,另程序编写时间为2017/7/11,以免之后程序无法使用可能是网站做过相关改变,程序较为简单,除去注释40多行。
正题:
思路:打开初始Url --> 正则获取标题及链接 --> 改变page循环第二步 --> 将得到的标题及链接导入Excel
爬虫的第一步都是先手工操作一遍(闲话)
进入上面提到的网址,如输入:“图片识别”,搜索,网址变为“http://weixin.sogou.com/weixin?type=2&query=%E5%9B%BE%E7%89%87%E8%AF%86%E5%88%AB&ie=utf8&s_from=input&_sug_=n&_sug_type_=1&w=01015002&oq=&ri=4&sourceid=sugg&sut=0&sst0=1499778531195&lkt=0%2C0%2C0&p=40040108”标红为重要参数,type=1时是搜索公众号,暂且不管,query=‘搜索关键词',关键词已经被编码,还有一个隐藏参数page=1
当你跳到第二页时可以看到“http://weixin.sogou.com/weixin?oq=&query=%E5%9B%BE%E7%89%87%E8%AF%86%E5%88%AB&_sug_type_=1&sut=0&lkt=0%2C0%2C0&s_from=input&ri=4&_sug_=n&type=2&sst0=1499778531195&page=2&ie=utf8&p=40040108&dp=1&w=01015002&dr=1”
好了,url可以得到了
url = 'http://weixin.sogou.com/weixin?type=2&query='+search+'&page='+str(page)
search是要搜索的关键词,用quote()编码即可插入
page是用来循环的
for page in range(1,pagenum+1): url = 'http://weixin.sogou.com/weixin?type=2&query='+search+'&page='+str(page)完整的url已经得到了,接下来访问url,获得其中的数据(创建opener对象,添加header())
import urllib.request header = ('User-Agent','Mozilla/5.0') opener = urllib.request.build_opener() opener.addheaders = [header] urllib.request.install_opener(opener) data = urllib.request.urlopen(url).read().decode()得到页面内容,采用正则表达获取相关数据
import re finddata = re.compile('<a target="_blank" href="(.*?)" rel="external nofollow" rel="external nofollow" .*?uigs="article_title_.*?">(.*?)</a>').findall(data) #finddata = [('',''),('','')]通过正则获取的数据中存在干扰项(链接:‘amp;')和无关项(标题:'<em><...><....></em>'),用replace()解决
title = title.replace('<em><!--red_beg-->','') title = title.replace('<!--red_end--></em>','') link = link.replace('amp;','')将处理后的标题和链接保存在列表中
title_link.append(link) title_link.append(title)如此搜索的标题和链接都得到了,接下来导入Excel
先创建Excel
import xlsxwriter workbook = xlsxwriter.Workbook(search+'.xlsx') worksheet = workbook.add_worksheet('微信')将title_link中的数据导入Excel
for i in range(0,len(title_link),2): worksheet.write('A'+str(i+1),title_link[i+1]) worksheet.write('C'+str(i+1),title_link[i]) workbook.close()完整代码:
'''python3.4 + windows羽凡-2017/7/11-用于搜索微信文章,保存标题及链接至Excel中每个页面10秒延迟,防止被限制import urllib.request,xlsxwriter,re,time'''import urllib.requestsearch = str(input("搜索微信文章:"))pagenum = int(input('搜索页数:'))import xlsxwriterworkbook = xlsxwriter.Workbook(search+'.xlsx')search = urllib.request.quote(search)title_link = []for page in range(1,pagenum+1): url = 'http://weixin.sogou.com/weixin?type=2&query='+search+'&page='+str(page) import urllib.request header = ('User-Agent','Mozilla/5.0') opener = urllib.request.build_opener() opener.addheaders = [header] urllib.request.install_opener(opener) data = urllib.request.urlopen(url).read().decode() import re finddata = re.compile('<a target="_blank" href="(.*?)" rel="external nofollow" rel="external nofollow" .*?uigs="article_title_.*?">(.*?)</a>').findall(data) #finddata = [('',''),('','')] for i in range(len(finddata)): title = finddata[i][1] title = title.replace('<em><!--red_beg-->','') title = title.replace('<!--red_end--></em>','') try: #标题中可能存在引号 title = title.replace('“','"') title = title.replace('”','"') except: pass link = finddata[i][0] link = link.replace('amp;','') title_link.append(link) title_link.append(title) print('第'+str(page)+'页') import time time.sleep(10)worksheet = workbook.add_worksheet('微信')worksheet.set_column('A:A',70)worksheet.set_column('C:C',100)bold = workbook.add_format({'bold':True})worksheet.write('A1','标题',bold)worksheet.write('C1','链接',bold)for i in range(0,len(title_link),2): worksheet.write('A'+str(i+1),title_link[i+1]) worksheet.write('C'+str(i+1),title_link[i])workbook.close()print('导入Excel完毕!')以上这篇python3之微信文章爬虫实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
现在网上有很多python2写的爬虫抓取网页图片的实例,但不适用新手(新手都使用python3环境,不兼容python2),所以我用Python3的语法写了一个
Python3安装第三方爬虫库BeautifulSoup4,供大家参考,具体内容如下在做Python3爬虫练习时,从网上找到了一段代码如下:#使用第三方库Bea
微信文章怎么刷阅读量?2017微信文章刷量神器是什么?微信公众号文章的阅读量至关重要,所以很多朋友相想知道微信文章怎么刷阅读量?2017微信文章刷量神器是什
上篇文章给大家介绍了Python爬虫实现百度翻译功能过程详解Python爬虫学习之翻译小程序感兴趣的朋友点击查看。今天给大家介绍Python爬虫制作翻译程序的方
前言这篇文章通过实例给大家讲解Python3中print带颜色输出的格式,下面话不多说了,来一起看看详细的介绍吧\033[显示方式;前景色;背景色m需要显示的文