亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

用Python將公眾號中文章爬下來(lái)獲取文章的html信息

優(yōu)采云 發(fā)布時(shí)間: 2021-08-16 01:21

  

用Python將公眾號中文章爬下來(lái)獲取文章的html信息

  

  公眾號里的文章一定是每一篇文章的必讀。

  有時(shí)候我們關(guān)注寶物類(lèi)公眾號,會(huì )發(fā)現它的歷史文章有數百甚至數千篇文章,而作者只索引了他認為更好的幾篇。太麻煩了。為了解決這類(lèi)問(wèn)題,我決定用Python爬下公眾號文章。

  基本思路爬取

  文章crawling 我們使用公共平臺的方式。這個(gè)方法雖然簡(jiǎn)單,但是我們需要有一個(gè)公眾號。如果我們沒(méi)有官方賬號,我們可以自己注冊一個(gè)。公眾號的注冊也比較簡(jiǎn)單。別說(shuō)了。

  首先登錄您的公眾號,然后依次進(jìn)行以下操作

  通過(guò)上面的操作,我們可以得到cookie等信息,我們先把cookie寫(xiě)入txt文件,實(shí)現代碼如下:

  # 從瀏覽器中復制出來(lái)的 cookie 字符串cookie_str = "自己的 cookie"cookie = {}# 遍歷 cookiefor cookies in cookie_str.split("; "): cookie_item = cookies.split("=") cookie[cookie_item[0]] = cookie_item[1]# 將 cookie 寫(xiě)入 txt 文件with open('cookie.txt', "w") as file: file.write(json.dumps(cookie))

  接下來(lái)我們獲取公眾號文章列表信息,代碼實(shí)現如下:

  with open("cookie.txt", "r") as file: cookie = file.read()cookies = json.loads(cookie)url = "https://mp.weixin.qq.com"response = requests.get(url, cookies=cookies)# 獲取tokentoken = re.findall(r"token=(\d+)", str(response.url))[0]# 請求頭信息headers = { "Referer": "https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=10&token=" + token + "&lang=zh_CN", "Host": "mp.weixin.qq.com", "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36",}# 遍歷指定頁(yè)數的文章for i in range(1, 5, 1): begin = (i - 1) * 5 # 獲取文章列表 requestUrl = "https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin="+str(begin)+"&count=5&fakeid=要爬取公眾號的fakeid&type=9&query=&token=" + token + "&lang=zh_CN&f=json&ajax=1" search_response = requests.get(requestUrl, cookies=cookies, headers=headers) # 獲取 JSON 格式的列表信息 re_text = search_response.json() list = re_text.get("app_msg_list") # 遍歷文章列表 for j in list: # 文章鏈接 url = j["link"] # 文章標題 title = j["title"] print(url) # 等待 8 秒,避免請求過(guò)于頻繁 time.sleep(8)

  保存

  通過(guò)文章list信息,我們可以得到文章公眾號的鏈接、標題等信息,然后我們可以根據文章使用微信模塊獲取文章html格式信息關(guān)聯(lián)。模塊安裝使用pip install wechatsogou就可以了。

  這里需要注意的是,我們通過(guò)微信模塊獲取的html信息會(huì )存在一些問(wèn)題。有兩個(gè)主要問(wèn)題。一是文章的html信息不全,需要自己補;另一個(gè)得到。 html 信息中可能有一些 CSS 樣式?jīng)]有帶過(guò)來(lái)。對于這個(gè)問(wèn)題,我們可以先通過(guò)瀏覽器的開(kāi)發(fā)者工具獲取樣式,然后手動(dòng)添加。代碼實(shí)現如下:

  # url:文章鏈接,title:文章標題def save2html(url, title): # captcha_break_time 為驗證碼輸入錯誤的重試次數,默認為 1 ws_api = wechatsogou.WechatSogouAPI(captcha_break_time = 3) content_info = ws_api.get_article_content(url) html = f''' {title} {title} {content_info['content_html']} ''' with open(title + '.html', "w", encoding="utf-8") as file: file.write('%s\n'%html)

  上面代碼中的my.css文件存儲了一些沒(méi)有帶過(guò)來(lái)的CSS樣式信息。

  用瀏覽器打開(kāi)公眾號文章的html文件看看效果:

  通過(guò)上面的顯示結果可以看出,我們保存的html文件的顯示效果還不錯。

  參考:

  結束

  ?

  

  ?

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久