python爬取指定微信公眾號文章
本文實(shí)例為大家分享了python爬取微信公眾號文章的具體代碼,供大家參考,具體內(nèi)容如下
該方法是依賴于urllib2庫來完成的,首先你需要安裝好你的python環(huán)境,然后安裝urllib2庫
程序的起始方法(返回值是公眾號文章列表):
def openUrl():
print("啟動爬蟲,打開搜狗搜索微信界面")
# 加載頁面
url = 'http://weixin.sogou.com/weixin?type=1&s_from=input&query=要爬取的公眾號名稱'
htmlContentObj = urllib2.urlopen(url)
# 將頁面轉(zhuǎn)化為文本
html = htmlContentObj.read()
# 正則匹配
str = re.findall(r"http://mp.weixin.qq.com/profile.+==",html)
# 替換轉(zhuǎn)義符得到可訪問的鏈接地址
tempHref = re.sub(r"&","&",str[0])
return tempHref
根據(jù)獲取到的文章列表的頁的鏈接地址(注意是文章列表頁面的得鏈接地址,不是文章的地址)將頁面讀取為文本
# 獲取頁面文本方法 def getHtmlStr(conurl): # 相當(dāng)于把頁面轉(zhuǎn)化為文本 response = urllib2.urlopen(conurl) # 讀取文本的字符串 htmlStr = response.read() return htmlStr
對讀取為文本的頁面進(jìn)行分析并利用正則匹配獲得公眾號里面文章的標(biāo)題,鏈接地址等內(nèi)容得json對象
# 文本轉(zhuǎn)換為所需要的json對象
def htmlToJsonObj(htmlStr):
# 正則匹配并得到需要的json字符串
jsonObjstr = re.findall(r"{\"list\":\[.+\]\}", htmlStr)
# 字符串轉(zhuǎn)json
jsonObj = json.loads(jsonObjstr[len(jsonObjstr)-1])
return jsonObj
然后從json對象中取出title,拼接url等(我這里只是獲取了鏈接地址和標(biāo)題),將兩個內(nèi)容分別存在兩個數(shù)組,以json對象的方式返回出去(注意拼接url的時(shí)候要替換掉轉(zhuǎn)義符(&))
# 從json對象中取出所需要的url
def jsonObjToArray(jsonObj):
hrefs = []
titles = []
# url中的&在html中是& ,故需要替換,下面為正則
patten = re.compile(r"&")
# 數(shù)組
arr = jsonObj["list"]
# 循環(huán)添加
for i in range(len(arr)):
# 每次替換字符串
fixHref = re.sub(patten,"&",arr[i]["app_msg_ext_info"]["content_url"])
# 添加到數(shù)組
titles.append(arr[i]["app_msg_ext_info"]["title"])
hrefs.append("https://mp.weixin.qq.com"+fixHref)
jsons = {"hrefs":hrefs,"titles":titles}
return jsons
#打開瀏覽器,進(jìn)行工作
def start():
tempHref = openUrl()
# 獲取頁面文本
htmlStr = getHtmlStr(tempHref)
# 文本轉(zhuǎn)json對象
jsonObj = htmlToJsonObj(htmlStr)
# f返回所需要的url數(shù)組
return jsonObjToArray(jsonObj)
最后通過啟動程序的方法啟動爬蟲并打印爬取到的信息
if __name__=='__main__':
try:
hrefs = start()
count = len(hrefs["hrefs"])
for i in range(count):
print("標(biāo)題:"+hrefs["titles"][i].encode("utf-8"))
print("爬取到的路徑:"+hrefs["hrefs"][i].encode("utf-8"))
print("------------->>爬取并打印完畢")
except Exception as e:
print(str(e))
程序需要導(dǎo)入的包
import urllib2 import json import re
依次賦值以上代碼,填寫要爬取的公眾號,運(yùn)行即可
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Django框架model模型對象驗(yàn)證實(shí)現(xiàn)方法分析
這篇文章主要介紹了Django框架model模型對象驗(yàn)證實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Django框架model模型對象驗(yàn)證相關(guān)原理、實(shí)現(xiàn)步驟及操作注意事項(xiàng),需要的朋友可以參考下2019-10-10
Python SVM(支持向量機(jī))實(shí)現(xiàn)方法完整示例
這篇文章主要介紹了Python SVM(支持向量機(jī))實(shí)現(xiàn)方法,結(jié)合完整實(shí)例形式分析了基于Python實(shí)現(xiàn)向量機(jī)SVM算法的具體步驟與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-06-06
Jupyter notebook如何實(shí)現(xiàn)指定瀏覽器打開
這篇文章主要介紹了Jupyter notebook如何實(shí)現(xiàn)指定瀏覽器打開,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
基于Python實(shí)現(xiàn)文本文件轉(zhuǎn)Excel
Excel文件是我們常用的一種文件,在工作中使用非常頻繁。Excel中有許多強(qiáng)大工具,因此用Excel來處理文件會給我們帶來很多便捷。本文就來和大家分享一下Python實(shí)現(xiàn)文本文件轉(zhuǎn)Excel的方法,感興趣的可以了解一下2022-08-08

