国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python3之微信文章爬蟲實例講解

2019-11-25 16:01:49
字體:
來源:轉載
供稿:網友

前提:

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()編碼即可插入

search = urllib.request.quote(search)

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之微信文章爬蟲實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金溪县| 全州县| 贡觉县| 萍乡市| 厦门市| 台东市| 凭祥市| 龙门县| 子长县| 宝坻区| 仙居县| 启东市| 连州市| 公安县| 桐城市| 江北区| 井陉县| 南康市| 共和县| 分宜县| 象州县| 蒲江县| 密云县| 汕尾市| 大余县| 上蔡县| 南江县| 晋宁县| 江达县| 修水县| 宁安市| 阿拉善右旗| 潼南县| 建德市| 嵊泗县| 沾益县| 恩施市| 恩施市| 西峡县| 醴陵市| 新巴尔虎右旗|