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

首頁 > 編程 > Python > 正文

python爬取指定微信公眾號文章

2020-01-04 13:45:49
字體:
來源:轉載
供稿:網友

本文實例為大家分享了python爬取微信公眾號文章的具體代碼,供大家參考,具體內容如下

該方法是依賴于urllib2庫來完成的,首先你需要安裝好你的python環境,然后安裝urllib2庫

程序的起始方法(返回值是公眾號文章列表):

def openUrl():  print("啟動爬蟲,打開搜狗搜索微信界面")  # 加載頁面  url = 'http://weixin.sogou.com/weixin?type=1&s_from=input&query=要爬取的公眾號名稱'  htmlContentObj = urllib2.urlopen(url)  # 將頁面轉化為文本  html = htmlContentObj.read()  # 正則匹配  str = re.findall(r"http://mp.weixin.qq.com/profile.+==",html)  # 替換轉義符得到可訪問的鏈接地址  tempHref = re.sub(r"&","&",str[0])  return tempHref

根據獲取到的文章列表的頁的鏈接地址(注意是文章列表頁面的得鏈接地址,不是文章的地址)將頁面讀取為文本

# 獲取頁面文本方法def getHtmlStr(conurl):  # 相當于把頁面轉化為文本  response = urllib2.urlopen(conurl)  # 讀取文本的字符串  htmlStr = response.read()  return htmlStr

對讀取為文本的頁面進行分析并利用正則匹配獲得公眾號里面文章的標題,鏈接地址等內容得json對象

# 文本轉換為所需要的json對象def htmlToJsonObj(htmlStr):  # 正則匹配并得到需要的json字符串  jsonObjstr = re.findall(r"{/"list/":/[.+/]/}", htmlStr)  # 字符串轉json  jsonObj = json.loads(jsonObjstr[len(jsonObjstr)-1])  return jsonObj

然后從json對象中取出title,拼接url等(我這里只是獲取了鏈接地址和標題),將兩個內容分別存在兩個數組,以json對象的方式返回出去(注意拼接url的時候要替換掉轉義符(&))

# 從json對象中取出所需要的urldef jsonObjToArray(jsonObj):  hrefs = []  titles = []  # url中的&在html中是& ,故需要替換,下面為正則  patten = re.compile(r"&")  # 數組  arr = jsonObj["list"]  # 循環添加  for i in range(len(arr)):    # 每次替換字符串    fixHref = re.sub(patten,"&",arr[i]["app_msg_ext_info"]["content_url"])    # 添加到數組    titles.append(arr[i]["app_msg_ext_info"]["title"])    hrefs.append("https://mp.weixin.qq.com"+fixHref)  jsons = {"hrefs":hrefs,"titles":titles}  return jsons#打開瀏覽器,進行工作def start():  tempHref = openUrl()  # 獲取頁面文本  htmlStr = getHtmlStr(tempHref)  # 文本轉json對象  jsonObj = htmlToJsonObj(htmlStr)  # f返回所需要的url數組  return jsonObjToArray(jsonObj)

最后通過啟動程序的方法啟動爬蟲并打印爬取到的信息

if __name__=='__main__':   try:    hrefs = start()    count = len(hrefs["hrefs"])    for i in range(count):      print("標題:"+hrefs["titles"][i].encode("utf-8"))      print("爬取到的路徑:"+hrefs["hrefs"][i].encode("utf-8"))    print("------------->>爬取并打印完畢")  except Exception as e:    print(str(e))

程序需要導入的包

import urllib2import jsonimport re

依次賦值以上代碼,填寫要爬取的公眾號,運行即可

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 容城县| 临海市| 昭通市| 滨海县| 乳山市| 大理市| 都兰县| 大悟县| 固阳县| 乐山市| 连云港市| 左权县| 新龙县| 怀来县| 绍兴市| 普定县| 修文县| 张家界市| 宜川县| 姚安县| 得荣县| 闵行区| 北京市| 昭平县| 临澧县| 枣强县| 贺州市| 哈密市| 顺昌县| 两当县| 烟台市| 贞丰县| 班玛县| 东乌珠穆沁旗| 浦城县| 乌兰察布市| 安徽省| 旬阳县| 进贤县| 蒙自县| 灵石县|