
querylist采集微信公眾號文章
querylist采集微信公眾號文章(微信公眾號怎么收集報名者名單和信息?怎么做?)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 208 次瀏覽 ? 2021-12-29 20:18
現在大家都習慣了每天通過(guò)微信互相交流。微信公眾號的出現,讓之前的一些工作變得更加輕松。在我們組織活動(dòng)之前,我們會(huì )先拉一個(gè)群組,然后手動(dòng)將回復信息一一整理出來(lái)。需要收錢(qián)的,只能一一整理。微信公眾平臺怎么發(fā)布活動(dòng),采集
報名者名單和信息,或者微信公眾號怎么采集
注冊粉絲的信息,也就是填表然后提交給我。
針對以上問(wèn)題,我們可以通過(guò)公眾號提交微信報名表,我們的商家也可以采集
用戶(hù)信息,通過(guò)微信營(yíng)銷(xiāo)系統的注冊活動(dòng),我們可以自定義注冊?xún)热?。?jiǎn)單實(shí)現任意內容的采集,直接將采集到的注冊信息直接扔進(jìn)群或嵌入公眾號。需參加活動(dòng)者自行提交信息,我們可直接在后臺查看報名資料。跟大家分享一下公眾號是如何采集
注冊信息的。步。
用電腦登錄第三方,登錄后掃碼或api綁定公眾號。一般選擇掃碼,方便快捷。完成后點(diǎn)擊下方管理頁(yè)面進(jìn)入后臺,如下圖
在微交互中,我們可以使用通用表單來(lái)實(shí)現,進(jìn)入通用表單編輯頁(yè)面,包括主辦方信息等。如果有支付費用,請選擇是或否,填寫(xiě)支付項目名稱(chēng)和金額,并提醒手機 配置和郵箱配置完成后,可以提醒提交信息的用戶(hù)及時(shí)處理注冊信息,編輯完所有內容后點(diǎn)擊保存
下一步是設置微信注冊以采集
信息。在添加組件中,我們可以根據自己的需要添加我們需要的組件,比如姓名、性別、年齡、聯(lián)系方式等,也有很多樣式供我們選擇,比如單選、多選、下拉-down 菜單等,以及組件的文字說(shuō)明,比如一些注意事項和填充規則,并檢查是否需要等。
在添加組件中,不僅可以自定義采集信息的內容,還可以進(jìn)行拖動(dòng)、移動(dòng)、刪除、添加等操作。在基本設置中,您還可以在微信采集
登記信息表中設置背景、圖標、按鈕、文字顏色和文字顏色。設置樣式等地方,最后保存后回復關(guān)鍵詞或者自定義菜單就可以得到微信注冊頁(yè)面
返回制作后臺點(diǎn)擊數據管理,可以看到已經(jīng)提交了采集
到的粉絲信息,然后點(diǎn)擊“一鍵導出excel”導出注冊信息。萬(wàn)能表格登記系統不僅可以制作各種表格,還可以作為問(wèn)卷使用。商品發(fā)布、注冊匯總等
如何使用微信采集
信息,表單功能強大,可用于行業(yè):活動(dòng)報名/學(xué)校報名/會(huì )議培訓/活動(dòng)報名等需要采集
信息的應用。制作報名表、報名表、預約表、邀請函、反饋表等電子表格,通過(guò)各大社交平臺發(fā)送表格鏈接,客戶(hù)在微信公眾號填寫(xiě)信息
服務(wù)優(yōu)勢
上手容易,操作簡(jiǎn)單,組合靈活;組件眾多,功能全面;
提供高級功能,讓您的表單采集
更準確的信息
互動(dòng)功能眾多,更具吸引力,同樣的努力可以事半功倍
應用場(chǎng)景
報名表、商品銷(xiāo)售、信息采集表等各種數據報表。
?、俣绦膨炞C:確保用戶(hù)填寫(xiě)的手機號碼真實(shí)有效,避免用戶(hù)提交無(wú)用信息。
?、诒韱雾棡楸靥铐棧汗催x必填項將要求用戶(hù)填寫(xiě)當前表單項,否則無(wú)法提交表單。使用這個(gè)功能,可以讓每個(gè)表格都可以采集
到必要的信息。
?、蹐竺藬迪拗疲嚎刂铺畋硪幠?,設置最多填表人數,可用于活動(dòng)報名,防止報名人數過(guò)多。
?、芏绦盘嵝眩寒敱韱翁顚?xiě)項中收錄
手機類(lèi)型時(shí),勾選短信提醒,用戶(hù)提交表單后即可發(fā)送指定短信給用戶(hù) 查看全部
querylist采集微信公眾號文章(微信公眾號怎么收集報名者名單和信息?怎么做?)
現在大家都習慣了每天通過(guò)微信互相交流。微信公眾號的出現,讓之前的一些工作變得更加輕松。在我們組織活動(dòng)之前,我們會(huì )先拉一個(gè)群組,然后手動(dòng)將回復信息一一整理出來(lái)。需要收錢(qián)的,只能一一整理。微信公眾平臺怎么發(fā)布活動(dòng),采集
報名者名單和信息,或者微信公眾號怎么采集
注冊粉絲的信息,也就是填表然后提交給我。

針對以上問(wèn)題,我們可以通過(guò)公眾號提交微信報名表,我們的商家也可以采集
用戶(hù)信息,通過(guò)微信營(yíng)銷(xiāo)系統的注冊活動(dòng),我們可以自定義注冊?xún)热?。?jiǎn)單實(shí)現任意內容的采集,直接將采集到的注冊信息直接扔進(jìn)群或嵌入公眾號。需參加活動(dòng)者自行提交信息,我們可直接在后臺查看報名資料。跟大家分享一下公眾號是如何采集
注冊信息的。步。
用電腦登錄第三方,登錄后掃碼或api綁定公眾號。一般選擇掃碼,方便快捷。完成后點(diǎn)擊下方管理頁(yè)面進(jìn)入后臺,如下圖

在微交互中,我們可以使用通用表單來(lái)實(shí)現,進(jìn)入通用表單編輯頁(yè)面,包括主辦方信息等。如果有支付費用,請選擇是或否,填寫(xiě)支付項目名稱(chēng)和金額,并提醒手機 配置和郵箱配置完成后,可以提醒提交信息的用戶(hù)及時(shí)處理注冊信息,編輯完所有內容后點(diǎn)擊保存

下一步是設置微信注冊以采集
信息。在添加組件中,我們可以根據自己的需要添加我們需要的組件,比如姓名、性別、年齡、聯(lián)系方式等,也有很多樣式供我們選擇,比如單選、多選、下拉-down 菜單等,以及組件的文字說(shuō)明,比如一些注意事項和填充規則,并檢查是否需要等。

在添加組件中,不僅可以自定義采集信息的內容,還可以進(jìn)行拖動(dòng)、移動(dòng)、刪除、添加等操作。在基本設置中,您還可以在微信采集
登記信息表中設置背景、圖標、按鈕、文字顏色和文字顏色。設置樣式等地方,最后保存后回復關(guān)鍵詞或者自定義菜單就可以得到微信注冊頁(yè)面

返回制作后臺點(diǎn)擊數據管理,可以看到已經(jīng)提交了采集
到的粉絲信息,然后點(diǎn)擊“一鍵導出excel”導出注冊信息。萬(wàn)能表格登記系統不僅可以制作各種表格,還可以作為問(wèn)卷使用。商品發(fā)布、注冊匯總等

如何使用微信采集
信息,表單功能強大,可用于行業(yè):活動(dòng)報名/學(xué)校報名/會(huì )議培訓/活動(dòng)報名等需要采集
信息的應用。制作報名表、報名表、預約表、邀請函、反饋表等電子表格,通過(guò)各大社交平臺發(fā)送表格鏈接,客戶(hù)在微信公眾號填寫(xiě)信息
服務(wù)優(yōu)勢
上手容易,操作簡(jiǎn)單,組合靈活;組件眾多,功能全面;
提供高級功能,讓您的表單采集
更準確的信息
互動(dòng)功能眾多,更具吸引力,同樣的努力可以事半功倍
應用場(chǎng)景
報名表、商品銷(xiāo)售、信息采集表等各種數據報表。
?、俣绦膨炞C:確保用戶(hù)填寫(xiě)的手機號碼真實(shí)有效,避免用戶(hù)提交無(wú)用信息。
?、诒韱雾棡楸靥铐棧汗催x必填項將要求用戶(hù)填寫(xiě)當前表單項,否則無(wú)法提交表單。使用這個(gè)功能,可以讓每個(gè)表格都可以采集
到必要的信息。
?、蹐竺藬迪拗疲嚎刂铺畋硪幠?,設置最多填表人數,可用于活動(dòng)報名,防止報名人數過(guò)多。
?、芏绦盘嵝眩寒敱韱翁顚?xiě)項中收錄
手機類(lèi)型時(shí),勾選短信提醒,用戶(hù)提交表單后即可發(fā)送指定短信給用戶(hù)
querylist采集微信公眾號文章( 微信公眾號一下如何接入微信號插件(圖))
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 121 次瀏覽 ? 2021-12-28 13:09
微信公眾號一下如何接入微信號插件(圖))
WordPress訪(fǎng)問(wèn)微信公眾號網(wǎng)站文章同步微信公眾號
移動(dòng)互聯(lián)網(wǎng)時(shí)代,微信成為了一個(gè)使用率特別高的APP。在之前的教程中,我們介紹了如何制作手機網(wǎng)站。在學(xué)習做網(wǎng)站論壇的網(wǎng)站建設培訓課程中,還有專(zhuān)門(mén)的課程講解如何制作手機網(wǎng)站。
今天我們要介紹的是微信公眾號,說(shuō)說(shuō)wordpress在搭建自己的網(wǎng)站時(shí)是如何訪(fǎng)問(wèn)微信公眾號的。通過(guò)將我們自己的網(wǎng)站連接到微信公眾號,只要我們的網(wǎng)站有更新的文章,都可以同時(shí)更新到我們的微信公眾號,非常完美。
在網(wǎng)站上設置wordpress訪(fǎng)問(wèn)微信公眾號時(shí),需要用到wordpress插件——“微信機器人”插件。下載微信機器人插件,解壓,上傳到插件目錄。請不要更改插件的文件夾名稱(chēng),否則無(wú)法使用。將微信公眾號后臺的網(wǎng)址設置為:
您的網(wǎng)址/?weixin
, Token 設置同上。
最后,進(jìn)入WordPress后臺>微信機器人設置和自定義回復。微信設置
很多人的微信公眾號(訂閱號)都是個(gè)人公眾號。微信的很多功能都被限制了。設置過(guò)程中會(huì )提示“由于開(kāi)發(fā)者通過(guò)界面修改了菜單配置,當前菜單配置已失效禁用”。
這是啟用開(kāi)發(fā)人員服務(wù)器配置和自定義菜單的小技巧。不要在微信機器人中設置,而是在公眾號中設置,方法如下:
溫馨的提示
安裝“微信機器人”插件,需要先安裝WPJAM基礎插件。這個(gè)插件也很不錯??梢?xún)?yōu)化很多wordpress的功能。安裝它沒(méi)有什么壞處。 查看全部
querylist采集微信公眾號文章(
微信公眾號一下如何接入微信號插件(圖))
WordPress訪(fǎng)問(wèn)微信公眾號網(wǎng)站文章同步微信公眾號
移動(dòng)互聯(lián)網(wǎng)時(shí)代,微信成為了一個(gè)使用率特別高的APP。在之前的教程中,我們介紹了如何制作手機網(wǎng)站。在學(xué)習做網(wǎng)站論壇的網(wǎng)站建設培訓課程中,還有專(zhuān)門(mén)的課程講解如何制作手機網(wǎng)站。
今天我們要介紹的是微信公眾號,說(shuō)說(shuō)wordpress在搭建自己的網(wǎng)站時(shí)是如何訪(fǎng)問(wèn)微信公眾號的。通過(guò)將我們自己的網(wǎng)站連接到微信公眾號,只要我們的網(wǎng)站有更新的文章,都可以同時(shí)更新到我們的微信公眾號,非常完美。

在網(wǎng)站上設置wordpress訪(fǎng)問(wèn)微信公眾號時(shí),需要用到wordpress插件——“微信機器人”插件。下載微信機器人插件,解壓,上傳到插件目錄。請不要更改插件的文件夾名稱(chēng),否則無(wú)法使用。將微信公眾號后臺的網(wǎng)址設置為:
您的網(wǎng)址/?weixin
, Token 設置同上。
最后,進(jìn)入WordPress后臺>微信機器人設置和自定義回復。微信設置
很多人的微信公眾號(訂閱號)都是個(gè)人公眾號。微信的很多功能都被限制了。設置過(guò)程中會(huì )提示“由于開(kāi)發(fā)者通過(guò)界面修改了菜單配置,當前菜單配置已失效禁用”。
這是啟用開(kāi)發(fā)人員服務(wù)器配置和自定義菜單的小技巧。不要在微信機器人中設置,而是在公眾號中設置,方法如下:

溫馨的提示
安裝“微信機器人”插件,需要先安裝WPJAM基礎插件。這個(gè)插件也很不錯??梢?xún)?yōu)化很多wordpress的功能。安裝它沒(méi)有什么壞處。
querylist采集微信公眾號文章(借助搜索微信搜索引擎進(jìn)行抓取過(guò)程(圖)文件保存 )
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 152 次瀏覽 ? 2021-12-27 07:06
)
借助搜索微信搜索引擎抓取
爬行過(guò)程
1、首先在搜狗的微信搜索頁(yè)面上測試一下,這樣我們的思路會(huì )更清晰
在搜索引擎上使用微信公眾號英文名進(jìn)行“搜索公眾號”操作(因為公眾號英文名是唯一的公眾號,中文名可能會(huì )重復。同時(shí)時(shí)候,公眾號名稱(chēng)一定要完全正確,否則可能會(huì )搜到很多東西,這樣我們就可以減少數據過(guò)濾的工作,
只需找到這個(gè)唯一英文名稱(chēng)對應的數據),向\';query=%s&ie=utf8&_sug_=n&_sug_type_= \'% \'Python\'發(fā)送請求,從頁(yè)面中解析出搜索結果公眾號對應的主頁(yè)跳轉鏈接。
爬取過(guò)程中使用的是pyquery,也可以使用xpath
文件保存:
完整代碼如下:
# coding: utf-8
# 這三行代碼是防止在python2上面編碼錯誤的,在python3上面不要要這樣設置
import sys
reload(sys)
sys.setdefaultencoding(\'utf-8\')
from urllib import quote
from pyquery import PyQuery as pq
from selenium import webdriver
from pyExcelerator import * # 導入excel相關(guān)包
import requests
import time
import re
import json
import os
class wx_spider:
def __init__(self,Wechat_PublicID):
\'\'\'
構造函數,借助搜狗微信搜索引擎,根據微信公眾號獲取微信公眾號對應的文章的,發(fā)布時(shí)間、文章標題, 文章鏈接, 文章簡(jiǎn)介等信息
:param Wechat_PublicID: 微信公眾號
\'\'\'
self.Wechat_PublicID = Wechat_PublicID
#搜狗引擎鏈接url
self.sogou_search_url = \'http://weixin.sogou.com/weixin?type=1&query=%s&ie=utf8&s_from=input&_sug_=n&_sug_type_=\' % quote(Wechat_PublicID)
# 爬蟲(chóng)偽裝頭部設置
self.headers = {\'User-Agent\': \'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0\'}
# 超時(shí)時(shí)長(cháng)
self.timeout = 5
# 爬蟲(chóng)模擬在一個(gè)request.session中完成
self.session = requests.Session()
# excel 第一行數據
self.excel_headData = [u\'發(fā)布時(shí)間\', u\'文章標題\', u\'文章鏈接\', u\'文章簡(jiǎn)介\']
# 定義excel操作句柄
self.excle_Workbook = Workbook()
def log(self, msg):
\'\'\'
日志函數
:param msg: 日志信息
:return:
\'\'\'
print u\'%s: %s\' % (time.strftime(\'%Y-%m-%d %H-%M-%S\'), msg)
def run(self):
#Step 0 : 創(chuàng )建公眾號命名的文件夾
if not os.path.exists(self.Wechat_PublicID):
os.makedirs(self.Wechat_PublicID)
# 第一步 :GET請求到搜狗微信引擎,以微信公眾號英文名稱(chēng)作為查詢(xún)關(guān)鍵字
self.log(u\'開(kāi)始獲取,微信公眾號英文名為:%s\' % self.Wechat_PublicID)
self.log(u\'開(kāi)始調用sougou搜索引擎\')
self.log(u\'搜索地址為:%s\' % self.sogou_search_url)
sougou_search_html = self.session.get(self.sogou_search_url, headers=self.headers, timeout=self.timeout).content
# 第二步:從搜索結果頁(yè)中解析出公眾號主頁(yè)鏈接
doc = pq(sougou_search_html)
# 通過(guò)pyquery的方式處理網(wǎng)頁(yè)內容,類(lèi)似用beautifulsoup,但是pyquery和jQuery的方法類(lèi)似,找到公眾號主頁(yè)地址
wx_url = doc(\'div[class=txt-box]\')(\'p[class=tit]\')(\'a\').attr(\'href\')
self.log(u\'獲取wx_url成功,%s\' % wx_url)
# 第三步:Selenium+PhantomJs獲取js異步加載渲染后的html
self.log(u\'開(kāi)始調用selenium渲染html\')
browser = webdriver.PhantomJS()
browser.get(wx_url)
time.sleep(3)
# 執行js得到整個(gè)頁(yè)面內容
selenium_html = browser.execute_script("return document.documentElement.outerHTML")
browser.close()
# 第四步: 檢測目標網(wǎng)站是否進(jìn)行了封鎖
\' 有時(shí)候對方會(huì )封鎖ip,這里做一下判斷,檢測html中是否包含id=verify_change的標簽,有的話(huà),代表被重定向了,提醒過(guò)一陣子重試 \'
if pq(selenium_html)(\'#verify_change\').text() != \'\':
self.log(u\'爬蟲(chóng)被目標網(wǎng)站封鎖,請稍后再試\')
else:
# 第五步: 使用PyQuery,從第三步獲取的html中解析出公眾號文章列表的數據
self.log(u\'調用selenium渲染html完成,開(kāi)始解析公眾號文章\')
doc = pq(selenium_html)
articles_list = doc(\'div[class="weui_media_box appmsg"]\')
articlesLength = len(articles_list)
self.log(u\'抓取到微信文章%d篇\' % articlesLength)
# Step 6: 把微信文章數據封裝成字典的list
self.log(u\'開(kāi)始整合微信文章數據為字典\')
# 遍歷找到的文章,解析里面的內容
if articles_list:
index = 0
# 以當前時(shí)間為名字建表
excel_sheet_name = time.strftime(\'%Y-%m-%d\')
excel_content = self.excle_Workbook.add_sheet(excel_sheet_name)
colindex = 0
columnsLength = len(self.excel_headData)
for data in self.excel_headData:
excel_content.write(0, colindex, data)
colindex += 1
for article in articles_list.items():
self.log(\' \' )
self.log(u\'開(kāi)始整合(%d/%d)\' % (index, articlesLength))
index += 1
# 處理單個(gè)文章
# 獲取標題
title = article(\'h4[class="weui_media_title"]\').text().strip()
self.log(u\'標題是: %s\' % title)
# 獲取標題對應的地址
url = \'http://mp.weixin.qq.com\' + article(\'h4[class="weui_media_title"]\').attr(\'hrefs\')
self.log(u\'地址為: %s\' % url)
# 獲取概要內容
# summary = article(\'.weui_media_desc\').text()
summary = article(\'p[class="weui_media_desc"]\').text()
self.log(u\'文章簡(jiǎn)述: %s\' % summary)
# 獲取文章發(fā)表時(shí)間
# date = article(\'.weui_media_extra_info\').text().strip()
date = article(\'p[class="weui_media_extra_info"]\').text().strip()
self.log(u\'發(fā)表時(shí)間為: %s\' % date)
# # 獲取封面圖片
# pic = article(\'.weui_media_hd\').attr(\'style\')
#
# p = re.compile(r\'background-image:url(.+)\')
# rs = p.findall(pic)
# if len(rs) > 0:
# p = rs[0].replace(\'(\', \'\')
# p = p.replace(\')\', \'\')
# self.log(u\'封面圖片是:%s \' % p)
tempContent = [date, title, url, summary]
for j in range(columnsLength):
excel_content.write(index, j, tempContent[j])
self.excle_Workbook.save(self.Wechat_PublicID + \'/\' + self.Wechat_PublicID + \'.xlsx\')
self.log(u\'保存完成,程序結束\')
if __name__ == \'__main__\':
wx_spider("python6359").run() 查看全部
querylist采集微信公眾號文章(借助搜索微信搜索引擎進(jìn)行抓取過(guò)程(圖)文件保存
)
借助搜索微信搜索引擎抓取
爬行過(guò)程
1、首先在搜狗的微信搜索頁(yè)面上測試一下,這樣我們的思路會(huì )更清晰
在搜索引擎上使用微信公眾號英文名進(jìn)行“搜索公眾號”操作(因為公眾號英文名是唯一的公眾號,中文名可能會(huì )重復。同時(shí)時(shí)候,公眾號名稱(chēng)一定要完全正確,否則可能會(huì )搜到很多東西,這樣我們就可以減少數據過(guò)濾的工作,
只需找到這個(gè)唯一英文名稱(chēng)對應的數據),向\';query=%s&ie=utf8&_sug_=n&_sug_type_= \'% \'Python\'發(fā)送請求,從頁(yè)面中解析出搜索結果公眾號對應的主頁(yè)跳轉鏈接。
爬取過(guò)程中使用的是pyquery,也可以使用xpath
文件保存:
完整代碼如下:
# coding: utf-8
# 這三行代碼是防止在python2上面編碼錯誤的,在python3上面不要要這樣設置
import sys
reload(sys)
sys.setdefaultencoding(\'utf-8\')
from urllib import quote
from pyquery import PyQuery as pq
from selenium import webdriver
from pyExcelerator import * # 導入excel相關(guān)包
import requests
import time
import re
import json
import os
class wx_spider:
def __init__(self,Wechat_PublicID):
\'\'\'
構造函數,借助搜狗微信搜索引擎,根據微信公眾號獲取微信公眾號對應的文章的,發(fā)布時(shí)間、文章標題, 文章鏈接, 文章簡(jiǎn)介等信息
:param Wechat_PublicID: 微信公眾號
\'\'\'
self.Wechat_PublicID = Wechat_PublicID
#搜狗引擎鏈接url
self.sogou_search_url = \'http://weixin.sogou.com/weixin?type=1&query=%s&ie=utf8&s_from=input&_sug_=n&_sug_type_=\' % quote(Wechat_PublicID)
# 爬蟲(chóng)偽裝頭部設置
self.headers = {\'User-Agent\': \'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0\'}
# 超時(shí)時(shí)長(cháng)
self.timeout = 5
# 爬蟲(chóng)模擬在一個(gè)request.session中完成
self.session = requests.Session()
# excel 第一行數據
self.excel_headData = [u\'發(fā)布時(shí)間\', u\'文章標題\', u\'文章鏈接\', u\'文章簡(jiǎn)介\']
# 定義excel操作句柄
self.excle_Workbook = Workbook()
def log(self, msg):
\'\'\'
日志函數
:param msg: 日志信息
:return:
\'\'\'
print u\'%s: %s\' % (time.strftime(\'%Y-%m-%d %H-%M-%S\'), msg)
def run(self):
#Step 0 : 創(chuàng )建公眾號命名的文件夾
if not os.path.exists(self.Wechat_PublicID):
os.makedirs(self.Wechat_PublicID)
# 第一步 :GET請求到搜狗微信引擎,以微信公眾號英文名稱(chēng)作為查詢(xún)關(guān)鍵字
self.log(u\'開(kāi)始獲取,微信公眾號英文名為:%s\' % self.Wechat_PublicID)
self.log(u\'開(kāi)始調用sougou搜索引擎\')
self.log(u\'搜索地址為:%s\' % self.sogou_search_url)
sougou_search_html = self.session.get(self.sogou_search_url, headers=self.headers, timeout=self.timeout).content
# 第二步:從搜索結果頁(yè)中解析出公眾號主頁(yè)鏈接
doc = pq(sougou_search_html)
# 通過(guò)pyquery的方式處理網(wǎng)頁(yè)內容,類(lèi)似用beautifulsoup,但是pyquery和jQuery的方法類(lèi)似,找到公眾號主頁(yè)地址
wx_url = doc(\'div[class=txt-box]\')(\'p[class=tit]\')(\'a\').attr(\'href\')
self.log(u\'獲取wx_url成功,%s\' % wx_url)
# 第三步:Selenium+PhantomJs獲取js異步加載渲染后的html
self.log(u\'開(kāi)始調用selenium渲染html\')
browser = webdriver.PhantomJS()
browser.get(wx_url)
time.sleep(3)
# 執行js得到整個(gè)頁(yè)面內容
selenium_html = browser.execute_script("return document.documentElement.outerHTML")
browser.close()
# 第四步: 檢測目標網(wǎng)站是否進(jìn)行了封鎖
\' 有時(shí)候對方會(huì )封鎖ip,這里做一下判斷,檢測html中是否包含id=verify_change的標簽,有的話(huà),代表被重定向了,提醒過(guò)一陣子重試 \'
if pq(selenium_html)(\'#verify_change\').text() != \'\':
self.log(u\'爬蟲(chóng)被目標網(wǎng)站封鎖,請稍后再試\')
else:
# 第五步: 使用PyQuery,從第三步獲取的html中解析出公眾號文章列表的數據
self.log(u\'調用selenium渲染html完成,開(kāi)始解析公眾號文章\')
doc = pq(selenium_html)
articles_list = doc(\'div[class="weui_media_box appmsg"]\')
articlesLength = len(articles_list)
self.log(u\'抓取到微信文章%d篇\' % articlesLength)
# Step 6: 把微信文章數據封裝成字典的list
self.log(u\'開(kāi)始整合微信文章數據為字典\')
# 遍歷找到的文章,解析里面的內容
if articles_list:
index = 0
# 以當前時(shí)間為名字建表
excel_sheet_name = time.strftime(\'%Y-%m-%d\')
excel_content = self.excle_Workbook.add_sheet(excel_sheet_name)
colindex = 0
columnsLength = len(self.excel_headData)
for data in self.excel_headData:
excel_content.write(0, colindex, data)
colindex += 1
for article in articles_list.items():
self.log(\' \' )
self.log(u\'開(kāi)始整合(%d/%d)\' % (index, articlesLength))
index += 1
# 處理單個(gè)文章
# 獲取標題
title = article(\'h4[class="weui_media_title"]\').text().strip()
self.log(u\'標題是: %s\' % title)
# 獲取標題對應的地址
url = \'http://mp.weixin.qq.com\' + article(\'h4[class="weui_media_title"]\').attr(\'hrefs\')
self.log(u\'地址為: %s\' % url)
# 獲取概要內容
# summary = article(\'.weui_media_desc\').text()
summary = article(\'p[class="weui_media_desc"]\').text()
self.log(u\'文章簡(jiǎn)述: %s\' % summary)
# 獲取文章發(fā)表時(shí)間
# date = article(\'.weui_media_extra_info\').text().strip()
date = article(\'p[class="weui_media_extra_info"]\').text().strip()
self.log(u\'發(fā)表時(shí)間為: %s\' % date)
# # 獲取封面圖片
# pic = article(\'.weui_media_hd\').attr(\'style\')
#
# p = re.compile(r\'background-image:url(.+)\')
# rs = p.findall(pic)
# if len(rs) > 0:
# p = rs[0].replace(\'(\', \'\')
# p = p.replace(\')\', \'\')
# self.log(u\'封面圖片是:%s \' % p)
tempContent = [date, title, url, summary]
for j in range(columnsLength):
excel_content.write(index, j, tempContent[j])
self.excle_Workbook.save(self.Wechat_PublicID + \'/\' + self.Wechat_PublicID + \'.xlsx\')
self.log(u\'保存完成,程序結束\')
if __name__ == \'__main__\':
wx_spider("python6359").run()
querylist采集微信公眾號文章(搜狗微信搜索中的微信文章獲取文章的瀏覽量和點(diǎn)贊量)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 159 次瀏覽 ? 2021-12-25 16:09
在線(xiàn)工具:微信文章轉PDF
微信公眾平臺上有很多公眾號,里面有各種各樣的文章,很多很亂。但是,在這些文章中,肯定會(huì )有我認為的精品文章。
所以如果我能寫(xiě)一個(gè)程序來(lái)獲取我喜歡的微信公眾號上的文章,獲取文章的瀏覽量和點(diǎn)贊數,然后進(jìn)行簡(jiǎn)單的數據分析,那么最終的文章列表肯定會(huì )是成為更好的文章。
這里需要注意的是,通過(guò)寫(xiě)爬蟲(chóng)在搜狗微信搜索中獲取微信文章,是無(wú)法獲取到瀏覽量和點(diǎn)贊這兩個(gè)關(guān)鍵數據的(我是編程入門(mén)級的)。所以我采取了不同的方法,通過(guò)清博指數網(wǎng)站,來(lái)獲取我想要的數據。
注:目前我們已經(jīng)找到了獲取搜狗微信文章瀏覽量和點(diǎn)贊數的方法。2017.02.03
事實(shí)上,清博指數網(wǎng)站上的數據是非常完整的??梢圆榭次⑿殴娞柫斜?,可以查看每日、每周、每月的熱門(mén)帖子。但正如我上面所說(shuō),內容相當混亂。閱讀量大的文章可能是一些家長(cháng)級人才會(huì )喜歡的文章。
當然,我也可以在這個(gè)網(wǎng)站上搜索特定的微信公眾號,然后閱讀它的歷史文章。青博索引也很詳細,文章可以按照閱讀數、點(diǎn)贊數等排序。但是,我需要的可能是一個(gè)很簡(jiǎn)單的點(diǎn)贊數除以閱讀數的指標,所以需要通過(guò)爬蟲(chóng)爬取以上數據進(jìn)行簡(jiǎn)單的分析。順便說(shuō)一句,你可以練習你的手,感覺(jué)很無(wú)聊。
啟動(dòng)程序
以建起財經(jīng)微信公眾號為例,我需要先打開(kāi)它的文章界面,下面是它的url:
http://www.gsdata.cn/query/art ... e%3D1
然后我通過(guò)分析發(fā)現它總共有25頁(yè)文章,也就是文章最后一頁(yè)的url如下,注意只有last參數不同:
http://www.gsdata.cn/query/art ... %3D25
所以你可以編寫(xiě)一個(gè)函數并調用它 25 次。
BeautifulSoup 爬取你在網(wǎng)絡(luò )上需要的數據
忘了說(shuō)了,我寫(xiě)程序用的語(yǔ)言是Python,爬蟲(chóng)入口很簡(jiǎn)單。那么BeautifulSoup就是一個(gè)網(wǎng)頁(yè)分析插件,非常方便的獲取文章中的HTML數據。
下一步是分析網(wǎng)頁(yè)結構:
我用紅框框了兩篇文章,它們在網(wǎng)頁(yè)上的結構代碼是一樣的。然后我可以通過(guò)查看元素看到網(wǎng)頁(yè)的相應代碼,然后我可以編寫(xiě)抓取規則。下面我直接寫(xiě)了一個(gè)函數:
# 獲取網(wǎng)頁(yè)中的數據
def get_webdata(url):
headers = {
'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'
}
r = requests.get(url,headers=headers)
c = r.content
b = BeautifulSoup(c)
data_list = b.find('ul',{'class':'article-ul'})
data_li = data_list.findAll('li')
for i in data_li:
# 替換標題中的英文雙引號,防止插入數據庫時(shí)出現錯誤
title = i.find('h4').find('a').get_text().replace('"','\'\'')
link = i.find('h4').find('a').attrs['href']
source = i.find('span',{'class':'blue'}).get_text()
time = i.find('span',{'class':'blue'}).parent.next_sibling.next_sibling.get_text().replace('發(fā)布時(shí)間:'.decode('utf-8'),'')
readnum = int(i.find('i',{'class':'fa-book'}).next_sibling)
praisenum = int(i.find('i',{'class':'fa-thumbs-o-up'}).next_sibling)
insert_content(title,readnum,praisenum,time,link,source)
這個(gè)函數包括先使用requests獲取網(wǎng)頁(yè)的內容,然后傳遞給BeautifulSoup分析提取我需要的數據,然后通過(guò)insert_content函數在數據庫中,這次就不涉及數據庫的知識了,所有的代碼都會(huì )在下面給出,也算是怕以后忘記了。
我個(gè)人認為,其實(shí)BeautifulSoup的知識點(diǎn)只需要掌握我在上面代碼中用到的幾個(gè)常用語(yǔ)句,比如find、findAll、get_text()、attrs['src']等等。
循環(huán)獲取并寫(xiě)入數據庫
你還記得第一個(gè)網(wǎng)址嗎?總共需要爬取25個(gè)頁(yè)面。這25個(gè)頁(yè)面的url其實(shí)和最后一個(gè)參數是不一樣的,所以你可以給出一個(gè)基本的url,使用for函數直接生成25個(gè)url。而已:
# 生成需要爬取的網(wǎng)頁(yè)鏈接且進(jìn)行爬取
def get_urls_webdatas(basic_url,range_num):
for i in range(1,range_num+1):
url = basic_url + str(i)
print url
print ''
get_webdata(url)
time.sleep(round(random.random(),1))
basic_url = 'http://www.gsdata.cn/query/article?q=jane7ducai&post_time=0&sort=-3&date=&search_field=4&page='
get_urls_webdatas(basic_url,25)
和上面的代碼一樣,函數get_urls_webdataas傳入了兩個(gè)參數,分別是基本url和需要的頁(yè)數。你可以看到我在代碼的最后一行調用了這個(gè)函數。
這個(gè)函數還調用了我寫(xiě)的函數get_webdata來(lái)抓取上面的頁(yè)面,這樣25頁(yè)的文章數據就會(huì )一次性寫(xiě)入數據庫。
那么請注意這個(gè)小技巧:
time.sleep(round(random.random(),1))
每次使用程序爬取一個(gè)網(wǎng)頁(yè),這個(gè)語(yǔ)句都會(huì )在1s內隨機生成一段時(shí)間,然后休息這么一小段時(shí)間,然后繼續爬下一個(gè)頁(yè)面,可以防止被ban。
獲取最終數據
先把程序的剩余代碼給我:
#coding:utf-8
import requests,MySQLdb,random,time
from bs4 import BeautifulSoup
def get_conn():
conn = MySQLdb.connect('localhost','root','0000','weixin',charset='utf8')
return conn
def insert_content(title,readnum,praisenum,time,link,source):
conn = get_conn()
cur = conn.cursor()
print title,readnum
sql = 'insert into weixin.gsdata(title,readnum,praisenum,time,link,source) values ("%s","%s","%s","%s","%s","%s")' % (title,readnum,praisenum,time,link,source)
cur.execute(sql)
conn.commit()
cur.close()
conn.close()
在導入的開(kāi)頭收錄
一些插件,然后剩下的兩個(gè)功能是與數據庫操作相關(guān)的功能。
最后,通過(guò)從weixin.gsdata中選擇*;在數據庫中,我可以獲取到我抓取到的這個(gè)微信公眾號的文章數據,包括標題、發(fā)布日期、閱讀量、點(diǎn)贊、訪(fǎng)問(wèn)網(wǎng)址等信息。
分析數據
這些數據只是最原創(chuàng )
的數據。我可以把上面的數據導入到Excel中進(jìn)行簡(jiǎn)單的分析處理,然后就可以得到我需要的文章列表了。分析思路如下:
我喜歡的微信公眾號只有幾個(gè)。我可以用這個(gè)程序抓取我喜歡的微信公眾號上的所有文章。如果我愿意,我可以進(jìn)一步篩選出更多高質(zhì)量的文章。
程序很簡(jiǎn)單,但是一個(gè)簡(jiǎn)單的程序就可以實(shí)現生活中的一些想法,是不是一件很美妙的事情。 查看全部
querylist采集微信公眾號文章(搜狗微信搜索中的微信文章獲取文章的瀏覽量和點(diǎn)贊量)
在線(xiàn)工具:微信文章轉PDF
微信公眾平臺上有很多公眾號,里面有各種各樣的文章,很多很亂。但是,在這些文章中,肯定會(huì )有我認為的精品文章。
所以如果我能寫(xiě)一個(gè)程序來(lái)獲取我喜歡的微信公眾號上的文章,獲取文章的瀏覽量和點(diǎn)贊數,然后進(jìn)行簡(jiǎn)單的數據分析,那么最終的文章列表肯定會(huì )是成為更好的文章。
這里需要注意的是,通過(guò)寫(xiě)爬蟲(chóng)在搜狗微信搜索中獲取微信文章,是無(wú)法獲取到瀏覽量和點(diǎn)贊這兩個(gè)關(guān)鍵數據的(我是編程入門(mén)級的)。所以我采取了不同的方法,通過(guò)清博指數網(wǎng)站,來(lái)獲取我想要的數據。
注:目前我們已經(jīng)找到了獲取搜狗微信文章瀏覽量和點(diǎn)贊數的方法。2017.02.03
事實(shí)上,清博指數網(wǎng)站上的數據是非常完整的??梢圆榭次⑿殴娞柫斜?,可以查看每日、每周、每月的熱門(mén)帖子。但正如我上面所說(shuō),內容相當混亂。閱讀量大的文章可能是一些家長(cháng)級人才會(huì )喜歡的文章。
當然,我也可以在這個(gè)網(wǎng)站上搜索特定的微信公眾號,然后閱讀它的歷史文章。青博索引也很詳細,文章可以按照閱讀數、點(diǎn)贊數等排序。但是,我需要的可能是一個(gè)很簡(jiǎn)單的點(diǎn)贊數除以閱讀數的指標,所以需要通過(guò)爬蟲(chóng)爬取以上數據進(jìn)行簡(jiǎn)單的分析。順便說(shuō)一句,你可以練習你的手,感覺(jué)很無(wú)聊。
啟動(dòng)程序
以建起財經(jīng)微信公眾號為例,我需要先打開(kāi)它的文章界面,下面是它的url:
http://www.gsdata.cn/query/art ... e%3D1
然后我通過(guò)分析發(fā)現它總共有25頁(yè)文章,也就是文章最后一頁(yè)的url如下,注意只有last參數不同:
http://www.gsdata.cn/query/art ... %3D25
所以你可以編寫(xiě)一個(gè)函數并調用它 25 次。
BeautifulSoup 爬取你在網(wǎng)絡(luò )上需要的數據
忘了說(shuō)了,我寫(xiě)程序用的語(yǔ)言是Python,爬蟲(chóng)入口很簡(jiǎn)單。那么BeautifulSoup就是一個(gè)網(wǎng)頁(yè)分析插件,非常方便的獲取文章中的HTML數據。
下一步是分析網(wǎng)頁(yè)結構:
我用紅框框了兩篇文章,它們在網(wǎng)頁(yè)上的結構代碼是一樣的。然后我可以通過(guò)查看元素看到網(wǎng)頁(yè)的相應代碼,然后我可以編寫(xiě)抓取規則。下面我直接寫(xiě)了一個(gè)函數:
# 獲取網(wǎng)頁(yè)中的數據
def get_webdata(url):
headers = {
'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'
}
r = requests.get(url,headers=headers)
c = r.content
b = BeautifulSoup(c)
data_list = b.find('ul',{'class':'article-ul'})
data_li = data_list.findAll('li')
for i in data_li:
# 替換標題中的英文雙引號,防止插入數據庫時(shí)出現錯誤
title = i.find('h4').find('a').get_text().replace('"','\'\'')
link = i.find('h4').find('a').attrs['href']
source = i.find('span',{'class':'blue'}).get_text()
time = i.find('span',{'class':'blue'}).parent.next_sibling.next_sibling.get_text().replace('發(fā)布時(shí)間:'.decode('utf-8'),'')
readnum = int(i.find('i',{'class':'fa-book'}).next_sibling)
praisenum = int(i.find('i',{'class':'fa-thumbs-o-up'}).next_sibling)
insert_content(title,readnum,praisenum,time,link,source)
這個(gè)函數包括先使用requests獲取網(wǎng)頁(yè)的內容,然后傳遞給BeautifulSoup分析提取我需要的數據,然后通過(guò)insert_content函數在數據庫中,這次就不涉及數據庫的知識了,所有的代碼都會(huì )在下面給出,也算是怕以后忘記了。
我個(gè)人認為,其實(shí)BeautifulSoup的知識點(diǎn)只需要掌握我在上面代碼中用到的幾個(gè)常用語(yǔ)句,比如find、findAll、get_text()、attrs['src']等等。
循環(huán)獲取并寫(xiě)入數據庫
你還記得第一個(gè)網(wǎng)址嗎?總共需要爬取25個(gè)頁(yè)面。這25個(gè)頁(yè)面的url其實(shí)和最后一個(gè)參數是不一樣的,所以你可以給出一個(gè)基本的url,使用for函數直接生成25個(gè)url。而已:
# 生成需要爬取的網(wǎng)頁(yè)鏈接且進(jìn)行爬取
def get_urls_webdatas(basic_url,range_num):
for i in range(1,range_num+1):
url = basic_url + str(i)
print url
print ''
get_webdata(url)
time.sleep(round(random.random(),1))
basic_url = 'http://www.gsdata.cn/query/article?q=jane7ducai&post_time=0&sort=-3&date=&search_field=4&page='
get_urls_webdatas(basic_url,25)
和上面的代碼一樣,函數get_urls_webdataas傳入了兩個(gè)參數,分別是基本url和需要的頁(yè)數。你可以看到我在代碼的最后一行調用了這個(gè)函數。
這個(gè)函數還調用了我寫(xiě)的函數get_webdata來(lái)抓取上面的頁(yè)面,這樣25頁(yè)的文章數據就會(huì )一次性寫(xiě)入數據庫。
那么請注意這個(gè)小技巧:
time.sleep(round(random.random(),1))
每次使用程序爬取一個(gè)網(wǎng)頁(yè),這個(gè)語(yǔ)句都會(huì )在1s內隨機生成一段時(shí)間,然后休息這么一小段時(shí)間,然后繼續爬下一個(gè)頁(yè)面,可以防止被ban。
獲取最終數據
先把程序的剩余代碼給我:
#coding:utf-8
import requests,MySQLdb,random,time
from bs4 import BeautifulSoup
def get_conn():
conn = MySQLdb.connect('localhost','root','0000','weixin',charset='utf8')
return conn
def insert_content(title,readnum,praisenum,time,link,source):
conn = get_conn()
cur = conn.cursor()
print title,readnum
sql = 'insert into weixin.gsdata(title,readnum,praisenum,time,link,source) values ("%s","%s","%s","%s","%s","%s")' % (title,readnum,praisenum,time,link,source)
cur.execute(sql)
conn.commit()
cur.close()
conn.close()
在導入的開(kāi)頭收錄
一些插件,然后剩下的兩個(gè)功能是與數據庫操作相關(guān)的功能。
最后,通過(guò)從weixin.gsdata中選擇*;在數據庫中,我可以獲取到我抓取到的這個(gè)微信公眾號的文章數據,包括標題、發(fā)布日期、閱讀量、點(diǎn)贊、訪(fǎng)問(wèn)網(wǎng)址等信息。
分析數據
這些數據只是最原創(chuàng )
的數據。我可以把上面的數據導入到Excel中進(jìn)行簡(jiǎn)單的分析處理,然后就可以得到我需要的文章列表了。分析思路如下:
我喜歡的微信公眾號只有幾個(gè)。我可以用這個(gè)程序抓取我喜歡的微信公眾號上的所有文章。如果我愿意,我可以進(jìn)一步篩選出更多高質(zhì)量的文章。
程序很簡(jiǎn)單,但是一個(gè)簡(jiǎn)單的程序就可以實(shí)現生活中的一些想法,是不是一件很美妙的事情。
querylist采集微信公眾號文章(微信公眾號文章的輿情監控系統)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 173 次瀏覽 ? 2021-12-23 16:23
小明醬是2018年元旦更新的,文筆還是很粗糙的。如果您遇到爬蟲(chóng)問(wèn)題,歡迎交流,評論區隨時(shí)為您開(kāi)放!
實(shí)習已經(jīng)過(guò)去兩周了,目前的任務(wù)量不是很大。我的老板人很好,他是一名軍校學(xué)生,分配給我的任務(wù)比我想象的更接近我的研究方向。他做的是微信公眾號文章的輿情監測系統。以下是系統圖的整體設計流程:
目前第一周是爬取微信公眾號文章,主要功能如下:
以上功能已經(jīng)實(shí)現。真心覺(jué)得在項目中學(xué)習是最高效的方式,但同時(shí)也有不明白的問(wèn)題。希望下周能掌握新知識,做一個(gè)總結。您不能只停留在插件編程中。.
下面我介紹一下思路流程GitHub代碼點(diǎn)擊這里:
大意
輸入公眾號獲取爬蟲(chóng)起始地址
http://weixin.sogou.com/weixin ... 3D%2B公眾號ID+&ie=utf8&_sug_=n&_sug_type_=
基于網(wǎng)頁(yè)結構設計爬取規則
在這個(gè)階段,我徘徊了很長(cháng)時(shí)間??吹胶芏郿emo設計花哨的反揀貨策略,讓我心慌了半天。
1.第一級:找到指定公眾號,獲取公眾號首頁(yè)鏈接
2.Level 2:跳轉到首頁(yè),找到文章的各個(gè)鏈接
3. Level 3:進(jìn)入每個(gè)文章頁(yè)面進(jìn)行信息爬取,三個(gè)綠色框內的信息,以及頁(yè)面的主要內容
主要思路是這樣的,用chrome檢查的部分就不細說(shuō)了,是例行操作
網(wǎng)址:
但是當我把網(wǎng)址復制到瀏覽器時(shí),他又回到了微信搜索的首頁(yè),哦,我該怎么辦?我們先來(lái)看看開(kāi)發(fā)者工具
以上參數只對應URL。專(zhuān)注于 tsn。表示訪(fǎng)問(wèn)在文章的一天內。我們應該提出以下要求:
return [scrapy.FormRequest(url='http://weixin.sogou.com/weixin',
formdata={'type':'2',
'ie':'utf8',
'query':key,
'tsn':'1',
'ft':'',
'et':'',
'interation':'',
'sst0': str(int(time.time()*1000)),
'page': str(self.page),
'wxid':'',
'usip':''},
method='get']
上面的問(wèn)題解決了~
存儲詳情
數據存儲量還是很大的,需要大量的樣本來(lái)訓練模型。它現在存儲在數據庫中,但值得我注意的一個(gè)細節是數據的編碼?,F在公眾號的文章里有很多表情符號。,于是出現如下錯誤:
pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x93\\xBD \\xC2...' for column 'article' at row 1")
解決方案參考:
對抗爬行動(dòng)物
主要問(wèn)題是驗證碼,但是如果爬行速度不是很快,是可以避免的。因此,采用以下兩種策略:
import random
DOWNLOAD_DELAY = random.randint(1, 3)
總結頁(yè)面元素匹配問(wèn)題。以后我們會(huì )詳細了解BeautifulSoup的翻頁(yè)邏輯。這個(gè)只能自學(xué)自學(xué)了??紤]換頁(yè)的邏輯數據庫存儲和編碼問(wèn)題。Navicat是新?lián)Q的,感覺(jué)100分。這次配置完成后,放心使用代理IP,網(wǎng)上通過(guò)代碼爬取的IP無(wú)法使用,浪費了很多時(shí)間,邪惡的tsn,學(xué)了一招笑死了。
爬行的基本思路很清晰,但其實(shí)我還沒(méi)有完全掌握爬行,還有很多方面需要繼續學(xué)習。正如行走所說(shuō)的那樣,我心急如焚,想盡快實(shí)現自己的目標,卻忽略了正確的原則和基礎,是絕對不可能掌握的。因此,在寒假期間,我希望能好好學(xué)習以下知識:
尤其是第二點(diǎn)非常非常重要。學(xué)習會(huì )可以證明你可以爬,而不是僅僅拼湊幾段代碼來(lái)運行,你會(huì )得到很多東西。同時(shí)也希望志同道合的朋友可以加我。微信,一起進(jìn)步!哈哈我的微信歡迎私聊~ 查看全部
querylist采集微信公眾號文章(微信公眾號文章的輿情監控系統)
小明醬是2018年元旦更新的,文筆還是很粗糙的。如果您遇到爬蟲(chóng)問(wèn)題,歡迎交流,評論區隨時(shí)為您開(kāi)放!
實(shí)習已經(jīng)過(guò)去兩周了,目前的任務(wù)量不是很大。我的老板人很好,他是一名軍校學(xué)生,分配給我的任務(wù)比我想象的更接近我的研究方向。他做的是微信公眾號文章的輿情監測系統。以下是系統圖的整體設計流程:
目前第一周是爬取微信公眾號文章,主要功能如下:
以上功能已經(jīng)實(shí)現。真心覺(jué)得在項目中學(xué)習是最高效的方式,但同時(shí)也有不明白的問(wèn)題。希望下周能掌握新知識,做一個(gè)總結。您不能只停留在插件編程中。.
下面我介紹一下思路流程GitHub代碼點(diǎn)擊這里:
大意
輸入公眾號獲取爬蟲(chóng)起始地址
http://weixin.sogou.com/weixin ... 3D%2B公眾號ID+&ie=utf8&_sug_=n&_sug_type_=
基于網(wǎng)頁(yè)結構設計爬取規則
在這個(gè)階段,我徘徊了很長(cháng)時(shí)間??吹胶芏郿emo設計花哨的反揀貨策略,讓我心慌了半天。
1.第一級:找到指定公眾號,獲取公眾號首頁(yè)鏈接
2.Level 2:跳轉到首頁(yè),找到文章的各個(gè)鏈接
3. Level 3:進(jìn)入每個(gè)文章頁(yè)面進(jìn)行信息爬取,三個(gè)綠色框內的信息,以及頁(yè)面的主要內容
主要思路是這樣的,用chrome檢查的部分就不細說(shuō)了,是例行操作
網(wǎng)址:
但是當我把網(wǎng)址復制到瀏覽器時(shí),他又回到了微信搜索的首頁(yè),哦,我該怎么辦?我們先來(lái)看看開(kāi)發(fā)者工具
以上參數只對應URL。專(zhuān)注于 tsn。表示訪(fǎng)問(wèn)在文章的一天內。我們應該提出以下要求:
return [scrapy.FormRequest(url='http://weixin.sogou.com/weixin',
formdata={'type':'2',
'ie':'utf8',
'query':key,
'tsn':'1',
'ft':'',
'et':'',
'interation':'',
'sst0': str(int(time.time()*1000)),
'page': str(self.page),
'wxid':'',
'usip':''},
method='get']
上面的問(wèn)題解決了~
存儲詳情
數據存儲量還是很大的,需要大量的樣本來(lái)訓練模型。它現在存儲在數據庫中,但值得我注意的一個(gè)細節是數據的編碼?,F在公眾號的文章里有很多表情符號。,于是出現如下錯誤:
pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x93\\xBD \\xC2...' for column 'article' at row 1")
解決方案參考:
對抗爬行動(dòng)物
主要問(wèn)題是驗證碼,但是如果爬行速度不是很快,是可以避免的。因此,采用以下兩種策略:
import random
DOWNLOAD_DELAY = random.randint(1, 3)
總結頁(yè)面元素匹配問(wèn)題。以后我們會(huì )詳細了解BeautifulSoup的翻頁(yè)邏輯。這個(gè)只能自學(xué)自學(xué)了??紤]換頁(yè)的邏輯數據庫存儲和編碼問(wèn)題。Navicat是新?lián)Q的,感覺(jué)100分。這次配置完成后,放心使用代理IP,網(wǎng)上通過(guò)代碼爬取的IP無(wú)法使用,浪費了很多時(shí)間,邪惡的tsn,學(xué)了一招笑死了。
爬行的基本思路很清晰,但其實(shí)我還沒(méi)有完全掌握爬行,還有很多方面需要繼續學(xué)習。正如行走所說(shuō)的那樣,我心急如焚,想盡快實(shí)現自己的目標,卻忽略了正確的原則和基礎,是絕對不可能掌握的。因此,在寒假期間,我希望能好好學(xué)習以下知識:
尤其是第二點(diǎn)非常非常重要。學(xué)習會(huì )可以證明你可以爬,而不是僅僅拼湊幾段代碼來(lái)運行,你會(huì )得到很多東西。同時(shí)也希望志同道合的朋友可以加我。微信,一起進(jìn)步!哈哈我的微信歡迎私聊~
querylist采集微信公眾號文章(微信公眾號文章的輿情監控系統)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 133 次瀏覽 ? 2021-12-23 16:22
小明醬是2018年元旦更新的,文筆還是很粗糙的。如果您遇到爬蟲(chóng)問(wèn)題,歡迎交流,評論區隨時(shí)為您開(kāi)放!
實(shí)習已經(jīng)過(guò)去兩周了,目前的任務(wù)量不是很大。我的老板人很好,他是一名軍校學(xué)生,分配給我的任務(wù)比我想象的更接近我的研究方向。他做的是微信公眾號文章的輿情監測系統。以下是系統圖的整體設計流程:
目前第一周是爬取微信公眾號文章,主要功能如下:
以上功能已經(jīng)實(shí)現。真心覺(jué)得在項目中學(xué)習是最高效的方式,但同時(shí)也有不明白的問(wèn)題。希望下周能掌握新知識,做一個(gè)總結。您不能只停留在插件編程中。.
下面我介紹一下思路流程GitHub代碼點(diǎn)擊這里:
大意
輸入公眾號獲取爬蟲(chóng)起始地址
http://weixin.sogou.com/weixin ... 3D%2B公眾號ID+&ie=utf8&_sug_=n&_sug_type_=
基于網(wǎng)頁(yè)結構設計爬取規則
在這個(gè)階段,我徘徊了很長(cháng)時(shí)間??吹胶芏郿emo設計花哨的反揀貨策略,讓我心慌了半天。
1.第一級:找到指定公眾號,獲取公眾號首頁(yè)鏈接
2.Level 2:跳轉到首頁(yè),找到文章的各個(gè)鏈接
3. Level 3:進(jìn)入每個(gè)文章頁(yè)面進(jìn)行信息爬取,三個(gè)綠色框內的信息,以及頁(yè)面的主要內容
主要思路是這樣的,用chrome檢查的部分就不細說(shuō)了,是例行操作
網(wǎng)址:
但是當我把網(wǎng)址復制到瀏覽器時(shí),他又回到了微信搜索的首頁(yè),哦,我該怎么辦?我們先來(lái)看看開(kāi)發(fā)者工具
以上參數只對應URL。專(zhuān)注于 tsn。表示訪(fǎng)問(wèn)在文章的一天內。我們應該提出以下要求:
return [scrapy.FormRequest(url='http://weixin.sogou.com/weixin',
formdata={'type':'2',
'ie':'utf8',
'query':key,
'tsn':'1',
'ft':'',
'et':'',
'interation':'',
'sst0': str(int(time.time()*1000)),
'page': str(self.page),
'wxid':'',
'usip':''},
method='get']
上面的問(wèn)題解決了~
存儲詳情
數據存儲量還是很大的,需要大量的樣本來(lái)訓練模型。它現在存儲在數據庫中,但值得我注意的一個(gè)細節是數據的編碼?,F在公眾號的文章里有很多表情符號。,于是出現如下錯誤:
pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x93\\xBD \\xC2...' for column 'article' at row 1")
解決方案參考:
對抗爬行動(dòng)物
主要問(wèn)題是驗證碼,但是如果爬行速度不是很快,是可以避免的。因此,采用以下兩種策略:
import random
DOWNLOAD_DELAY = random.randint(1, 3)
總結頁(yè)面元素匹配問(wèn)題。以后我們會(huì )詳細了解BeautifulSoup的翻頁(yè)邏輯。這個(gè)只能自學(xué)自學(xué)了??紤]換頁(yè)的邏輯數據庫存儲和編碼問(wèn)題。Navicat是新?lián)Q的,感覺(jué)100分。這次配置完成后,放心使用代理IP,網(wǎng)上通過(guò)代碼爬取的IP無(wú)法使用,浪費了很多時(shí)間,邪惡的tsn,學(xué)了一招笑死了。
爬行的基本思路很清晰,但其實(shí)我還沒(méi)有完全掌握爬行,還有很多方面需要繼續學(xué)習。正如行走所說(shuō)的那樣,我心急如焚,想盡快實(shí)現自己的目標,卻忽略了正確的原則和基礎,是絕對不可能掌握的。因此,在寒假期間,我希望能好好學(xué)習以下知識:
尤其是第二點(diǎn)非常非常重要。學(xué)習會(huì )可以證明你可以爬,而不是僅僅拼湊幾段代碼來(lái)運行,你會(huì )得到很多東西。同時(shí)也希望志同道合的朋友可以加我。微信,一起進(jìn)步!哈哈我的微信歡迎私聊~ 查看全部
querylist采集微信公眾號文章(微信公眾號文章的輿情監控系統)
小明醬是2018年元旦更新的,文筆還是很粗糙的。如果您遇到爬蟲(chóng)問(wèn)題,歡迎交流,評論區隨時(shí)為您開(kāi)放!
實(shí)習已經(jīng)過(guò)去兩周了,目前的任務(wù)量不是很大。我的老板人很好,他是一名軍校學(xué)生,分配給我的任務(wù)比我想象的更接近我的研究方向。他做的是微信公眾號文章的輿情監測系統。以下是系統圖的整體設計流程:
目前第一周是爬取微信公眾號文章,主要功能如下:
以上功能已經(jīng)實(shí)現。真心覺(jué)得在項目中學(xué)習是最高效的方式,但同時(shí)也有不明白的問(wèn)題。希望下周能掌握新知識,做一個(gè)總結。您不能只停留在插件編程中。.
下面我介紹一下思路流程GitHub代碼點(diǎn)擊這里:
大意
輸入公眾號獲取爬蟲(chóng)起始地址
http://weixin.sogou.com/weixin ... 3D%2B公眾號ID+&ie=utf8&_sug_=n&_sug_type_=
基于網(wǎng)頁(yè)結構設計爬取規則
在這個(gè)階段,我徘徊了很長(cháng)時(shí)間??吹胶芏郿emo設計花哨的反揀貨策略,讓我心慌了半天。
1.第一級:找到指定公眾號,獲取公眾號首頁(yè)鏈接
2.Level 2:跳轉到首頁(yè),找到文章的各個(gè)鏈接
3. Level 3:進(jìn)入每個(gè)文章頁(yè)面進(jìn)行信息爬取,三個(gè)綠色框內的信息,以及頁(yè)面的主要內容
主要思路是這樣的,用chrome檢查的部分就不細說(shuō)了,是例行操作
網(wǎng)址:
但是當我把網(wǎng)址復制到瀏覽器時(shí),他又回到了微信搜索的首頁(yè),哦,我該怎么辦?我們先來(lái)看看開(kāi)發(fā)者工具
以上參數只對應URL。專(zhuān)注于 tsn。表示訪(fǎng)問(wèn)在文章的一天內。我們應該提出以下要求:
return [scrapy.FormRequest(url='http://weixin.sogou.com/weixin',
formdata={'type':'2',
'ie':'utf8',
'query':key,
'tsn':'1',
'ft':'',
'et':'',
'interation':'',
'sst0': str(int(time.time()*1000)),
'page': str(self.page),
'wxid':'',
'usip':''},
method='get']
上面的問(wèn)題解決了~
存儲詳情
數據存儲量還是很大的,需要大量的樣本來(lái)訓練模型。它現在存儲在數據庫中,但值得我注意的一個(gè)細節是數據的編碼?,F在公眾號的文章里有很多表情符號。,于是出現如下錯誤:
pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x93\\xBD \\xC2...' for column 'article' at row 1")
解決方案參考:
對抗爬行動(dòng)物
主要問(wèn)題是驗證碼,但是如果爬行速度不是很快,是可以避免的。因此,采用以下兩種策略:
import random
DOWNLOAD_DELAY = random.randint(1, 3)
總結頁(yè)面元素匹配問(wèn)題。以后我們會(huì )詳細了解BeautifulSoup的翻頁(yè)邏輯。這個(gè)只能自學(xué)自學(xué)了??紤]換頁(yè)的邏輯數據庫存儲和編碼問(wèn)題。Navicat是新?lián)Q的,感覺(jué)100分。這次配置完成后,放心使用代理IP,網(wǎng)上通過(guò)代碼爬取的IP無(wú)法使用,浪費了很多時(shí)間,邪惡的tsn,學(xué)了一招笑死了。
爬行的基本思路很清晰,但其實(shí)我還沒(méi)有完全掌握爬行,還有很多方面需要繼續學(xué)習。正如行走所說(shuō)的那樣,我心急如焚,想盡快實(shí)現自己的目標,卻忽略了正確的原則和基礎,是絕對不可能掌握的。因此,在寒假期間,我希望能好好學(xué)習以下知識:
尤其是第二點(diǎn)非常非常重要。學(xué)習會(huì )可以證明你可以爬,而不是僅僅拼湊幾段代碼來(lái)運行,你會(huì )得到很多東西。同時(shí)也希望志同道合的朋友可以加我。微信,一起進(jìn)步!哈哈我的微信歡迎私聊~
querylist采集微信公眾號文章(一個(gè)獲取微信公眾號文章的方法,你知道嗎?)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 169 次瀏覽 ? 2021-12-21 18:00
之前自己維護過(guò)公眾號,但是因為個(gè)人關(guān)系好久沒(méi)有更新,今天上來(lái)想起來(lái),卻無(wú)意中找到了獲取微信公眾號文章的方法。
之前的獲取方式有很多,通過(guò)搜狗、清博、web、客戶(hù)端等都可以,這個(gè)可能不太好,但是操作簡(jiǎn)單易懂。
所以。首先,您需要在微信公眾平臺上有一個(gè)賬號
微信公眾平臺:
登錄后,進(jìn)入首頁(yè),點(diǎn)擊新建群發(fā)。
選擇自創(chuàng )圖形:
好像是公眾號操作教學(xué)
進(jìn)入編輯頁(yè)面后,點(diǎn)擊超鏈接
彈出一個(gè)選擇框,我們在框中輸入對應的公眾號名稱(chēng),就會(huì )出現對應的文章列表
你驚喜嗎?您可以打開(kāi)控制臺并檢查請求的界面
打開(kāi)回復,里面有我們需要的文章鏈接
確認數據后,我們需要對這個(gè)界面進(jìn)行分析。
感覺(jué)非常簡(jiǎn)單。GET 請求攜帶一些參數。
Fakeid是公眾號的唯一ID,所以如果想直接通過(guò)名字獲取文章的列表,還需要先獲取fakeid。
當我們輸入官方賬號名稱(chēng)時(shí),點(diǎn)擊搜索??梢钥吹剿阉鹘缑姹挥|發(fā),返回fakeid。
這個(gè)接口需要的參數不多。
接下來(lái)我們就可以用代碼來(lái)模擬上面的操作了。
但您還需要使用現有的 cookie 來(lái)避免登錄。
我沒(méi)有測試過(guò)當前cookie的有效期??赡苄枰皶r(shí)更新 cookie。
測試代碼:
import requests
import json
Cookie = '請換上自己的Cookie,獲取方法:直接復制下來(lái)'
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
headers = {
"Cookie": Cookie,
"User-Agent": 'Mozilla/5.0 (Linux; Android 10; YAL-AL00 Build/HUAWEIYAL-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.64 HuaweiBrowser/10.0.1.335 Mobile Safari/537.36'
}
keyword = 'pythonlx' # 公眾號名字:可自定義
token = '你的token' # 獲取方法:如上述 直接復制下來(lái)
search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?action=search_biz&begin=0&count=5&query={}&token={}&lang=zh_CN&f=json&ajax=1'.format(keyword,token)
doc = requests.get(search_url,headers=headers).text
jstext = json.loads(doc)
fakeid = jstext['list'][0]['fakeid']
data = {
"token": token,
"lang": "zh_CN",
"f": "json",
"ajax": "1",
"action": "list_ex",
"begin": 0,
"count": "5",
"query": "",
"fakeid": fakeid,
"type": "9",
}
json_test = requests.get(url, headers=headers, params=data).text
json_test = json.loads(json_test)
print(json_test)
這樣就可以得到最新的10篇文章。如果想獲取更多歷史記錄文章,可以修改數據中的“begin”參數,0為第一頁(yè),5為第二頁(yè),10為第三頁(yè)(以此類(lèi)推)
但是如果你想大規模爬行:
請自己安排一個(gè)穩定的代理,降低爬蟲(chóng)速度,準備多個(gè)賬號,減少被屏蔽的可能性。
相關(guān)文章 查看全部
querylist采集微信公眾號文章(一個(gè)獲取微信公眾號文章的方法,你知道嗎?)
之前自己維護過(guò)公眾號,但是因為個(gè)人關(guān)系好久沒(méi)有更新,今天上來(lái)想起來(lái),卻無(wú)意中找到了獲取微信公眾號文章的方法。
之前的獲取方式有很多,通過(guò)搜狗、清博、web、客戶(hù)端等都可以,這個(gè)可能不太好,但是操作簡(jiǎn)單易懂。
所以。首先,您需要在微信公眾平臺上有一個(gè)賬號
微信公眾平臺:

登錄后,進(jìn)入首頁(yè),點(diǎn)擊新建群發(fā)。

選擇自創(chuàng )圖形:

好像是公眾號操作教學(xué)
進(jìn)入編輯頁(yè)面后,點(diǎn)擊超鏈接

彈出一個(gè)選擇框,我們在框中輸入對應的公眾號名稱(chēng),就會(huì )出現對應的文章列表

你驚喜嗎?您可以打開(kāi)控制臺并檢查請求的界面

打開(kāi)回復,里面有我們需要的文章鏈接

確認數據后,我們需要對這個(gè)界面進(jìn)行分析。
感覺(jué)非常簡(jiǎn)單。GET 請求攜帶一些參數。

Fakeid是公眾號的唯一ID,所以如果想直接通過(guò)名字獲取文章的列表,還需要先獲取fakeid。
當我們輸入官方賬號名稱(chēng)時(shí),點(diǎn)擊搜索??梢钥吹剿阉鹘缑姹挥|發(fā),返回fakeid。

這個(gè)接口需要的參數不多。

接下來(lái)我們就可以用代碼來(lái)模擬上面的操作了。
但您還需要使用現有的 cookie 來(lái)避免登錄。

我沒(méi)有測試過(guò)當前cookie的有效期??赡苄枰皶r(shí)更新 cookie。
測試代碼:
import requests
import json
Cookie = '請換上自己的Cookie,獲取方法:直接復制下來(lái)'
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
headers = {
"Cookie": Cookie,
"User-Agent": 'Mozilla/5.0 (Linux; Android 10; YAL-AL00 Build/HUAWEIYAL-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.64 HuaweiBrowser/10.0.1.335 Mobile Safari/537.36'
}
keyword = 'pythonlx' # 公眾號名字:可自定義
token = '你的token' # 獲取方法:如上述 直接復制下來(lái)
search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?action=search_biz&begin=0&count=5&query={}&token={}&lang=zh_CN&f=json&ajax=1'.format(keyword,token)
doc = requests.get(search_url,headers=headers).text
jstext = json.loads(doc)
fakeid = jstext['list'][0]['fakeid']
data = {
"token": token,
"lang": "zh_CN",
"f": "json",
"ajax": "1",
"action": "list_ex",
"begin": 0,
"count": "5",
"query": "",
"fakeid": fakeid,
"type": "9",
}
json_test = requests.get(url, headers=headers, params=data).text
json_test = json.loads(json_test)
print(json_test)
這樣就可以得到最新的10篇文章。如果想獲取更多歷史記錄文章,可以修改數據中的“begin”參數,0為第一頁(yè),5為第二頁(yè),10為第三頁(yè)(以此類(lèi)推)
但是如果你想大規模爬行:
請自己安排一個(gè)穩定的代理,降低爬蟲(chóng)速度,準備多個(gè)賬號,減少被屏蔽的可能性。
相關(guān)文章
querylist采集微信公眾號文章(Python微信公眾號文章爬取一.思路我們通過(guò)網(wǎng)頁(yè)版)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 135 次瀏覽 ? 2021-12-19 05:12
Python微信公眾號文章抓取
一.思考
我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
從界面我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
二. 接口分析
微信公眾號獲取界面:
范圍:
行動(dòng)=search_biz
開(kāi)始=0
計數=5
查詢(xún)=官方帳號名稱(chēng)
token=每個(gè)賬戶(hù)對應的token值
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。
獲取對應公眾號文章的界面:
范圍:
動(dòng)作=list_ex
開(kāi)始=0
計數=5
fakeid=MjM5NDAwMTA2MA==
類(lèi)型=9
查詢(xún)=
令牌=557131216
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以獲取到微信公眾號文章的數據了。
三.實(shí)現第一步:
首先我們需要通過(guò)selenium模擬登錄,然后獲取cookie和對應的token
def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get('https://mp.weixin.qq.com/')
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name='account']")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name='password']")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class='btn_login']").click()
sleep(2)
# 微信登錄驗證
print('請掃描二維碼')
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get('https://mp.weixin.qq.com/')
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item['name']] = item['value']
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open('cookie.txt', 'w+', encoding='utf-8') as f:
f.write(cookie_str)
print('cookie保存到本地成功')
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split('?')[1].split('&')
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split('=')[0]] = item.split('=')[1]
# 返回token
return paramdict['token']
定義了一個(gè)登錄方法,里面的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù),輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,用登錄微信掃一掃即可。
刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token,然后返回。
第二步:1.請求對應的公眾號接口,得到我們需要的fakeid
url = 'https://mp.weixin.qq.com'
headers = {
'HOST': 'mp.weixin.qq.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'
}
with open('cookie.txt', 'r', encoding='utf-8') as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = 'https://mp.weixin.qq.com/cgi-b ... 39%3B
params = {
'action': 'search_biz',
'begin': '0',
'count': '5',
'query': '搜索的公眾號名稱(chēng)',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
傳入我們獲取到的token和cookie,然后通過(guò)requests.get請求獲取返回的微信公眾號的json數據
lists = search_resp.json().get('list')[0]
通過(guò)上面的代碼可以得到對應的公眾號數據
fakeid = lists.get('fakeid')
通過(guò)上面的代碼可以得到對應的fakeid
2.請求獲取微信公眾號文章接口,獲取我們需要的數據文章
appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'
params_data = {
'action': 'list_ex',
'begin': '0',
'count': '5',
'fakeid': fakeid,
'type': '9',
'query': '',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
我們傳入fakeid和token,然后調用requests.get請求接口獲取返回的json數據。
我們已經(jīng)實(shí)現了對微信公眾號文章的抓取。
四.總結
通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,當我們在循環(huán)中獲取文章時(shí),一定要設置延遲時(shí)間,否則賬號很容易被封,獲取不到返回的數據。 查看全部
querylist采集微信公眾號文章(Python微信公眾號文章爬取一.思路我們通過(guò)網(wǎng)頁(yè)版)
Python微信公眾號文章抓取
一.思考
我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面


從界面我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
二. 接口分析
微信公眾號獲取界面:
范圍:
行動(dòng)=search_biz
開(kāi)始=0
計數=5
查詢(xún)=官方帳號名稱(chēng)
token=每個(gè)賬戶(hù)對應的token值
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。

獲取對應公眾號文章的界面:
范圍:
動(dòng)作=list_ex
開(kāi)始=0
計數=5
fakeid=MjM5NDAwMTA2MA==
類(lèi)型=9
查詢(xún)=
令牌=557131216
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以獲取到微信公眾號文章的數據了。

三.實(shí)現第一步:
首先我們需要通過(guò)selenium模擬登錄,然后獲取cookie和對應的token
def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get('https://mp.weixin.qq.com/')
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name='account']")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name='password']")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class='btn_login']").click()
sleep(2)
# 微信登錄驗證
print('請掃描二維碼')
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get('https://mp.weixin.qq.com/')
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item['name']] = item['value']
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open('cookie.txt', 'w+', encoding='utf-8') as f:
f.write(cookie_str)
print('cookie保存到本地成功')
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split('?')[1].split('&')
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split('=')[0]] = item.split('=')[1]
# 返回token
return paramdict['token']
定義了一個(gè)登錄方法,里面的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù),輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,用登錄微信掃一掃即可。
刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token,然后返回。
第二步:1.請求對應的公眾號接口,得到我們需要的fakeid
url = 'https://mp.weixin.qq.com'
headers = {
'HOST': 'mp.weixin.qq.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'
}
with open('cookie.txt', 'r', encoding='utf-8') as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = 'https://mp.weixin.qq.com/cgi-b ... 39%3B
params = {
'action': 'search_biz',
'begin': '0',
'count': '5',
'query': '搜索的公眾號名稱(chēng)',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
傳入我們獲取到的token和cookie,然后通過(guò)requests.get請求獲取返回的微信公眾號的json數據
lists = search_resp.json().get('list')[0]
通過(guò)上面的代碼可以得到對應的公眾號數據
fakeid = lists.get('fakeid')
通過(guò)上面的代碼可以得到對應的fakeid
2.請求獲取微信公眾號文章接口,獲取我們需要的數據文章
appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'
params_data = {
'action': 'list_ex',
'begin': '0',
'count': '5',
'fakeid': fakeid,
'type': '9',
'query': '',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
我們傳入fakeid和token,然后調用requests.get請求接口獲取返回的json數據。
我們已經(jīng)實(shí)現了對微信公眾號文章的抓取。
四.總結
通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,當我們在循環(huán)中獲取文章時(shí),一定要設置延遲時(shí)間,否則賬號很容易被封,獲取不到返回的數據。
querylist采集微信公眾號文章( 訪(fǎng)問(wèn)示例地址參考資料)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 154 次瀏覽 ? 2021-12-18 22:14
訪(fǎng)問(wèn)示例地址參考資料)
核心代碼
要求獲取文章的標題、跳轉鏈接、發(fā)布時(shí)間和帶有圖片的文章縮略圖。具體代碼如下。
<p>'use strict';
const puppeteer = require('puppeteer')
exports.main = async (event, context) => {
const browser = await puppeteer.launch({
headless: true,
args: ['--no-sandbox', '--disable-setuid-sandbox'],
dumpio: false,
})
const page = await browser.newPage()
page.setUserAgent(
'Mozilla/5.0 (Linux; Android 10; Redmi K30 Pro Build/QKQ1.191117.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2581 MMWEBSDK/200801 Mobile Safari/537.36'
)
await page.goto('獲取到的話(huà)題標簽鏈接', {
waitUntil: 'networkidle0',
})
const articleInfo = await page.evaluate(() => {
const element = document.querySelector(".album__list");
let items = element.getElementsByClassName("album__list-item");
let title = [];
for (let i = 0; i 查看全部
querylist采集微信公眾號文章(
訪(fǎng)問(wèn)示例地址參考資料)

核心代碼
要求獲取文章的標題、跳轉鏈接、發(fā)布時(shí)間和帶有圖片的文章縮略圖。具體代碼如下。
<p>'use strict';
const puppeteer = require('puppeteer')
exports.main = async (event, context) => {
const browser = await puppeteer.launch({
headless: true,
args: ['--no-sandbox', '--disable-setuid-sandbox'],
dumpio: false,
})
const page = await browser.newPage()
page.setUserAgent(
'Mozilla/5.0 (Linux; Android 10; Redmi K30 Pro Build/QKQ1.191117.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2581 MMWEBSDK/200801 Mobile Safari/537.36'
)
await page.goto('獲取到的話(huà)題標簽鏈接', {
waitUntil: 'networkidle0',
})
const articleInfo = await page.evaluate(() => {
const element = document.querySelector(".album__list");
let items = element.getElementsByClassName("album__list-item");
let title = [];
for (let i = 0; i
querylist采集微信公眾號文章(Fiddler如何抓包這里不再一一闡述,首先第一次如何安裝?(組圖))
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 164 次瀏覽 ? 2021-12-18 22:13
前言
微信后臺很多消息都沒(méi)有回復:看到就回復不了。有什么問(wèn)題可以加我的微信:菜單->聯(lián)系我
由于最近需要公眾號的歷史文章信息,嘗試爬取。雖然目前可以爬取數據,但是還不能實(shí)現大量的自動(dòng)化爬取。原因是參數key值是時(shí)間敏感的(具體時(shí)間沒(méi)有驗證為20分鐘),目前不知道怎么生成。
文章歷史列表爬取
第一個(gè)是搜狗微信,但是搜狗微信只能看到前十篇文章,看不到閱讀量和觀(guān)看數。嘗試爬取手機包,發(fā)現沒(méi)有抓取到任何信息。知道原因:
1、Android系統7. 0以下,微信信任系統的證書(shū)。
2、Android系統7.0及以上,微信7.0版本,微信信任系統提供的證書(shū)。
3、Android系統7.0及以上,微信7.0及以上,微信只信任自己的證書(shū)。
我也試過(guò)用appium來(lái)自動(dòng)爬取,個(gè)人覺(jué)得有點(diǎn)麻煩。所以嘗試從PC上抓取請求。
進(jìn)入正題,這次我用Fiddler抓包。下載鏈接:
Fiddler如何抓包這里就不一一解釋了。首先,第一次安裝Fiddler時(shí),需要安裝一個(gè)證書(shū)來(lái)捕獲HTTPS請求。
如何安裝?
打開(kāi)Fiddler,在菜單欄找到Tools -> Options -> 點(diǎn)擊HTTPS -> 點(diǎn)擊Actions,證書(shū)安裝配置如下:
以我自己的公眾號為例:PC端登錄微信,打開(kāi)Fiddler,按F12開(kāi)始/停止抓包,進(jìn)入公眾號歷史文章頁(yè)面,看到Fiddler有很多請求,如如下圖所示:
由于查看歷史記錄是跳轉到一個(gè)新的頁(yè)面,所以可以從body中看到返回的更多。同時(shí)通過(guò)Content-Type可以知道返回的是css或者html或者js。你可以先看一下html,所以它會(huì )找到上圖紅框中的鏈接,點(diǎn)擊它,從右邊可以看到返回的結果和參數:
從右邊的Headers可以看到請求鏈接、方法、參數等,如果想更清楚的查看參數,可以點(diǎn)擊WebForms查看,就是上圖的結果。以下是重要參數的說(shuō)明:
__biz:微信公眾號的唯一標識(同一公眾號保持不變)
uin:唯一用戶(hù)標識(同一微信用戶(hù)不變)
關(guān)鍵:微信內部算法是時(shí)間敏感的。我目前不知道如何計算。
pass_ticket:有讀權限加密,改了(在我實(shí)際爬取中發(fā)現沒(méi)必要,可以忽略)
這時(shí)候其實(shí)可以寫(xiě)代碼爬取第一頁(yè)的文章,但是返回的是一個(gè)html頁(yè)面,解析頁(yè)面顯然比較麻煩。
可以嘗試向下滑動(dòng),加載下一頁(yè)數據,看看是json還是html。如果是json,好辦,如果還是html,那就得稍微解析一下了。繼續往下查找:
這個(gè)請求是文章的返回列表,是json數據,非常方便我們解析。從參數中我們發(fā)現有一個(gè)offset為10的參數,很明顯這個(gè)參數是分頁(yè)的offset,這個(gè)請求是10來(lái)加載第二頁(yè)的歷史記錄,果斷修改為0,然后發(fā)送請求,拿到第一頁(yè)的數據,然后就不用解析html頁(yè)面了,再次分析參數,發(fā)現是Multi-parameters,很多都沒(méi)用,最后的參數是:
動(dòng)作:getmsg(固定值,應該是獲取更多信息)
__biz、uin、key這三個(gè)值上面已經(jīng)介紹過(guò)了,這里也是必選參數。
f:json(固定值,表示返回json數據)
偏移:頁(yè)面偏移
如果要獲取公眾號的歷史列表,這6個(gè)參數是必須的,其他參數不需要帶。我們來(lái)分析一下請求頭中的聽(tīng)者,如圖:
參數很多,不知道哪些應該帶,哪些不需要帶。最后,我只需要攜帶UA,別的什么都沒(méi)有。最后寫(xiě)個(gè)腳本嘗試獲?。?br /> import?requests
url?=?"鏈接:http://鏈接:mp.weixin鏈接:.qq.com/mp/profile_ext"
headers=?{
????'User-Agent':'Mozilla/5.0?(iPhone;?CPU?iPhone?OS?10_0_1?like?Mac?OS?X)?AppleWebKit/602.1.50?(KHTML,?like?Gecko)?Mobile/14A403?MicroMessenger/6.5.18?NetType/WIFI?Language/zh_CN'
}
param?=?{
????'action':?'getmsg',
????'__biz':?'MzU0NDg3NDg0Ng==',
????'f':?'json',
????'offset':?0,
????'uin':?'MTY5OTE4Mzc5Nw==',
????'key':?'0295ce962daa06881b1fbddd606f47252d0273a7280069e55e1daa347620284614629cd08ef0413941d46dc737cf866bc3ed3012ec202ffa9379c2538035a662e9ffa3f84852a0299a6590811b17de96'
}
index_josn?=?requests.get(url,?params=param,?headers=headers)
print(index_josn.json())
print(index_josn.json().get('general_msg_list'))
獲取json對象中的general_msg_list,得到結果:
獲取文章的詳細信息
我有上面的鏈接,只是請求解析 html 頁(yè)面。此處不再解釋?zhuān)稍谕暾a中查看)。 查看全部
querylist采集微信公眾號文章(Fiddler如何抓包這里不再一一闡述,首先第一次如何安裝?(組圖))
前言
微信后臺很多消息都沒(méi)有回復:看到就回復不了。有什么問(wèn)題可以加我的微信:菜單->聯(lián)系我
由于最近需要公眾號的歷史文章信息,嘗試爬取。雖然目前可以爬取數據,但是還不能實(shí)現大量的自動(dòng)化爬取。原因是參數key值是時(shí)間敏感的(具體時(shí)間沒(méi)有驗證為20分鐘),目前不知道怎么生成。
文章歷史列表爬取
第一個(gè)是搜狗微信,但是搜狗微信只能看到前十篇文章,看不到閱讀量和觀(guān)看數。嘗試爬取手機包,發(fā)現沒(méi)有抓取到任何信息。知道原因:
1、Android系統7. 0以下,微信信任系統的證書(shū)。
2、Android系統7.0及以上,微信7.0版本,微信信任系統提供的證書(shū)。
3、Android系統7.0及以上,微信7.0及以上,微信只信任自己的證書(shū)。
我也試過(guò)用appium來(lái)自動(dòng)爬取,個(gè)人覺(jué)得有點(diǎn)麻煩。所以嘗試從PC上抓取請求。
進(jìn)入正題,這次我用Fiddler抓包。下載鏈接:
Fiddler如何抓包這里就不一一解釋了。首先,第一次安裝Fiddler時(shí),需要安裝一個(gè)證書(shū)來(lái)捕獲HTTPS請求。
如何安裝?
打開(kāi)Fiddler,在菜單欄找到Tools -> Options -> 點(diǎn)擊HTTPS -> 點(diǎn)擊Actions,證書(shū)安裝配置如下:
以我自己的公眾號為例:PC端登錄微信,打開(kāi)Fiddler,按F12開(kāi)始/停止抓包,進(jìn)入公眾號歷史文章頁(yè)面,看到Fiddler有很多請求,如如下圖所示:
由于查看歷史記錄是跳轉到一個(gè)新的頁(yè)面,所以可以從body中看到返回的更多。同時(shí)通過(guò)Content-Type可以知道返回的是css或者html或者js。你可以先看一下html,所以它會(huì )找到上圖紅框中的鏈接,點(diǎn)擊它,從右邊可以看到返回的結果和參數:
從右邊的Headers可以看到請求鏈接、方法、參數等,如果想更清楚的查看參數,可以點(diǎn)擊WebForms查看,就是上圖的結果。以下是重要參數的說(shuō)明:
__biz:微信公眾號的唯一標識(同一公眾號保持不變)
uin:唯一用戶(hù)標識(同一微信用戶(hù)不變)
關(guān)鍵:微信內部算法是時(shí)間敏感的。我目前不知道如何計算。
pass_ticket:有讀權限加密,改了(在我實(shí)際爬取中發(fā)現沒(méi)必要,可以忽略)
這時(shí)候其實(shí)可以寫(xiě)代碼爬取第一頁(yè)的文章,但是返回的是一個(gè)html頁(yè)面,解析頁(yè)面顯然比較麻煩。
可以嘗試向下滑動(dòng),加載下一頁(yè)數據,看看是json還是html。如果是json,好辦,如果還是html,那就得稍微解析一下了。繼續往下查找:
這個(gè)請求是文章的返回列表,是json數據,非常方便我們解析。從參數中我們發(fā)現有一個(gè)offset為10的參數,很明顯這個(gè)參數是分頁(yè)的offset,這個(gè)請求是10來(lái)加載第二頁(yè)的歷史記錄,果斷修改為0,然后發(fā)送請求,拿到第一頁(yè)的數據,然后就不用解析html頁(yè)面了,再次分析參數,發(fā)現是Multi-parameters,很多都沒(méi)用,最后的參數是:
動(dòng)作:getmsg(固定值,應該是獲取更多信息)
__biz、uin、key這三個(gè)值上面已經(jīng)介紹過(guò)了,這里也是必選參數。
f:json(固定值,表示返回json數據)
偏移:頁(yè)面偏移
如果要獲取公眾號的歷史列表,這6個(gè)參數是必須的,其他參數不需要帶。我們來(lái)分析一下請求頭中的聽(tīng)者,如圖:
參數很多,不知道哪些應該帶,哪些不需要帶。最后,我只需要攜帶UA,別的什么都沒(méi)有。最后寫(xiě)個(gè)腳本嘗試獲?。?br /> import?requests
url?=?"鏈接:http://鏈接:mp.weixin鏈接:.qq.com/mp/profile_ext"
headers=?{
????'User-Agent':'Mozilla/5.0?(iPhone;?CPU?iPhone?OS?10_0_1?like?Mac?OS?X)?AppleWebKit/602.1.50?(KHTML,?like?Gecko)?Mobile/14A403?MicroMessenger/6.5.18?NetType/WIFI?Language/zh_CN'
}
param?=?{
????'action':?'getmsg',
????'__biz':?'MzU0NDg3NDg0Ng==',
????'f':?'json',
????'offset':?0,
????'uin':?'MTY5OTE4Mzc5Nw==',
????'key':?'0295ce962daa06881b1fbddd606f47252d0273a7280069e55e1daa347620284614629cd08ef0413941d46dc737cf866bc3ed3012ec202ffa9379c2538035a662e9ffa3f84852a0299a6590811b17de96'
}
index_josn?=?requests.get(url,?params=param,?headers=headers)
print(index_josn.json())
print(index_josn.json().get('general_msg_list'))
獲取json對象中的general_msg_list,得到結果:
獲取文章的詳細信息
我有上面的鏈接,只是請求解析 html 頁(yè)面。此處不再解釋?zhuān)稍谕暾a中查看)。
querylist采集微信公眾號文章(一個(gè)獲取微信公眾號文章的方法,你知道嗎?)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 165 次瀏覽 ? 2021-12-18 01:17
之前是自己維護一個(gè)公眾號,但是因為個(gè)人關(guān)系好久沒(méi)有更新,今天上來(lái)想起來(lái),卻偶然發(fā)現了微信公眾號文章的獲取方式。
之前的獲取方式有很多,通過(guò)搜狗、清博、web、客戶(hù)端等都可以,這個(gè)可能不太好,但是操作簡(jiǎn)單易懂。
所以。首先,您需要在微信公眾平臺上有一個(gè)賬號
微信公眾平臺:
登錄后,進(jìn)入首頁(yè),點(diǎn)擊新建群發(fā)。
選擇自創(chuàng )圖形:
好像是公眾號操作教學(xué)
進(jìn)入編輯頁(yè)面后,點(diǎn)擊超鏈接
彈出一個(gè)選擇框,我們在框中輸入對應的公眾號名稱(chēng),就會(huì )出現對應的文章列表
你驚喜嗎?您可以打開(kāi)控制臺并檢查請求的界面
打開(kāi)回復,里面有我們需要的文章鏈接
確認數據后,我們需要對這個(gè)界面進(jìn)行分析。
感覺(jué)非常簡(jiǎn)單。GET 請求攜帶一些參數。
Fakeid是公眾號的唯一ID,所以如果想直接通過(guò)名字獲取文章列表,還需要先獲取fakeid。
當我們輸入官方賬號名稱(chēng)時(shí),點(diǎn)擊搜索??梢钥吹剿阉鹘缑姹挥|發(fā),返回fakeid。
這個(gè)接口需要的參數不多。
接下來(lái)我們就可以用代碼來(lái)模擬上面的操作了。
但您還需要使用現有的 cookie 來(lái)避免登錄。
我沒(méi)有測試過(guò)當前cookie的有效期??赡苄枰皶r(shí)更新 cookie。
測試代碼:
import requests
import json
Cookie = '請換上自己的Cookie,獲取方法:直接復制下來(lái)'
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
headers = {
"Cookie": Cookie,
"User-Agent": 'Mozilla/5.0 (Linux; Android 10; YAL-AL00 Build/HUAWEIYAL-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.64 HuaweiBrowser/10.0.1.335 Mobile Safari/537.36'
}
keyword = 'pythonlx' # 公眾號名字:可自定義
token = '你的token' # 獲取方法:如上述 直接復制下來(lái)
search_url = 'https://mp.weixin.qq.com/cgi-b ... ry%3D{}&token={}&lang=zh_CN&f=json&ajax=1'.format(keyword,token)
doc = requests.get(search_url,headers=headers).text
jstext = json.loads(doc)
fakeid = jstext['list'][0]['fakeid']
data = {
"token": token,
"lang": "zh_CN",
"f": "json",
"ajax": "1",
"action": "list_ex",
"begin": 0,
"count": "5",
"query": "",
"fakeid": fakeid,
"type": "9",
}
json_test = requests.get(url, headers=headers, params=data).text
json_test = json.loads(json_test)
print(json_test)
這樣就可以得到最新的10篇文章。如果想獲取更多歷史記錄文章,可以修改數據中的“begin”參數,0為第一頁(yè),5為第二頁(yè),10為第三頁(yè)(以此類(lèi)推)
但是如果你想大規模爬行:
請自己安排一個(gè)穩定的代理,降低爬蟲(chóng)速度,準備多個(gè)賬號,減少被屏蔽的可能性。 查看全部
querylist采集微信公眾號文章(一個(gè)獲取微信公眾號文章的方法,你知道嗎?)
之前是自己維護一個(gè)公眾號,但是因為個(gè)人關(guān)系好久沒(méi)有更新,今天上來(lái)想起來(lái),卻偶然發(fā)現了微信公眾號文章的獲取方式。
之前的獲取方式有很多,通過(guò)搜狗、清博、web、客戶(hù)端等都可以,這個(gè)可能不太好,但是操作簡(jiǎn)單易懂。
所以。首先,您需要在微信公眾平臺上有一個(gè)賬號
微信公眾平臺:

登錄后,進(jìn)入首頁(yè),點(diǎn)擊新建群發(fā)。

選擇自創(chuàng )圖形:

好像是公眾號操作教學(xué)
進(jìn)入編輯頁(yè)面后,點(diǎn)擊超鏈接

彈出一個(gè)選擇框,我們在框中輸入對應的公眾號名稱(chēng),就會(huì )出現對應的文章列表

你驚喜嗎?您可以打開(kāi)控制臺并檢查請求的界面

打開(kāi)回復,里面有我們需要的文章鏈接

確認數據后,我們需要對這個(gè)界面進(jìn)行分析。
感覺(jué)非常簡(jiǎn)單。GET 請求攜帶一些參數。

Fakeid是公眾號的唯一ID,所以如果想直接通過(guò)名字獲取文章列表,還需要先獲取fakeid。
當我們輸入官方賬號名稱(chēng)時(shí),點(diǎn)擊搜索??梢钥吹剿阉鹘缑姹挥|發(fā),返回fakeid。

這個(gè)接口需要的參數不多。

接下來(lái)我們就可以用代碼來(lái)模擬上面的操作了。
但您還需要使用現有的 cookie 來(lái)避免登錄。

我沒(méi)有測試過(guò)當前cookie的有效期??赡苄枰皶r(shí)更新 cookie。
測試代碼:
import requests
import json
Cookie = '請換上自己的Cookie,獲取方法:直接復制下來(lái)'
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
headers = {
"Cookie": Cookie,
"User-Agent": 'Mozilla/5.0 (Linux; Android 10; YAL-AL00 Build/HUAWEIYAL-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.64 HuaweiBrowser/10.0.1.335 Mobile Safari/537.36'
}
keyword = 'pythonlx' # 公眾號名字:可自定義
token = '你的token' # 獲取方法:如上述 直接復制下來(lái)
search_url = 'https://mp.weixin.qq.com/cgi-b ... ry%3D{}&token={}&lang=zh_CN&f=json&ajax=1'.format(keyword,token)
doc = requests.get(search_url,headers=headers).text
jstext = json.loads(doc)
fakeid = jstext['list'][0]['fakeid']
data = {
"token": token,
"lang": "zh_CN",
"f": "json",
"ajax": "1",
"action": "list_ex",
"begin": 0,
"count": "5",
"query": "",
"fakeid": fakeid,
"type": "9",
}
json_test = requests.get(url, headers=headers, params=data).text
json_test = json.loads(json_test)
print(json_test)
這樣就可以得到最新的10篇文章。如果想獲取更多歷史記錄文章,可以修改數據中的“begin”參數,0為第一頁(yè),5為第二頁(yè),10為第三頁(yè)(以此類(lèi)推)
但是如果你想大規模爬行:
請自己安排一個(gè)穩定的代理,降低爬蟲(chóng)速度,準備多個(gè)賬號,減少被屏蔽的可能性。
querylist采集微信公眾號文章(孤狼微信公眾號文章采集主要功能特色介紹! )
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 169 次瀏覽 ? 2021-12-16 11:04
)
孤狼數據采集平臺為微信公眾號文章提供采集,可以方便的發(fā)布到市場(chǎng)主流系統,一些冷門(mén)的網(wǎng)站接口也可以定制!
一、獨狼微信公眾號文章采集主要功能
1.根據公眾號名稱(chēng)或ID,指定公眾號采集,支持輸入多個(gè)公眾號,不限制公眾號數量
2. 多種圖片下載存儲方式(遠程調用、圖片本地化、ftp上傳),解決公眾號防盜鏈問(wèn)題文章
3.強大的數據存儲功能(采集接收到的數據保存在本地數據庫文件中)
4.簡(jiǎn)單的配置可以輕松發(fā)布到主流網(wǎng)站或者api接口
二、微信公眾號文章采集主要步驟
1、創(chuàng )建“添加公眾號”任務(wù)
登錄軟件打開(kāi)左上角“自定義公眾號”,鼠標右鍵添加公眾號框,點(diǎn)擊獲取軟件自動(dòng)獲取公眾號信息,然后添加到群中。
2、填寫(xiě)公眾號名稱(chēng)或ID為采集
填寫(xiě)基本信息如下圖:
只需填寫(xiě)任務(wù)名稱(chēng)和采集的微信公眾號名稱(chēng)或ID即可。提示:可以查看文章的圖片前后自動(dòng)過(guò)濾
使用廣告圖片功能刪除廣告(功能需提前勾選)
使用公眾號標簽
3、設置圖片下載(可選)
由于微信公眾號文章上的圖片經(jīng)過(guò)防盜鏈處理,采集收到的原創(chuàng )圖片無(wú)法正常顯示。如果需要圖片,需要配置圖片下載:
您可以選擇“上傳設置(通過(guò)ftp返回您的服務(wù)器)”或直接遠程調用。
4、開(kāi)始采集
圖片配置好后,可以點(diǎn)擊左上角的“采集”,采集數據:
5、采集 后期數據處理與發(fā)布
啟動(dòng)采集后,總是會(huì )出來(lái)數據采集,文章可以預覽,顯示圖形內容,添加到“任務(wù)列表”頁(yè)面查看:勾選后文章, 選擇發(fā)布任務(wù)
可以分配到一個(gè)類(lèi)別或列;
在任務(wù)列表中,您可以發(fā)布:
最后選擇發(fā)布到自己的系統。如果軟件上現成的界面與你的網(wǎng)站界面匹配,直接填寫(xiě)網(wǎng)址、后臺網(wǎng)址、賬號密碼等,點(diǎn)擊登錄成功。
查看全部
querylist采集微信公眾號文章(孤狼微信公眾號文章采集主要功能特色介紹!
)
孤狼數據采集平臺為微信公眾號文章提供采集,可以方便的發(fā)布到市場(chǎng)主流系統,一些冷門(mén)的網(wǎng)站接口也可以定制!
一、獨狼微信公眾號文章采集主要功能
1.根據公眾號名稱(chēng)或ID,指定公眾號采集,支持輸入多個(gè)公眾號,不限制公眾號數量
2. 多種圖片下載存儲方式(遠程調用、圖片本地化、ftp上傳),解決公眾號防盜鏈問(wèn)題文章
3.強大的數據存儲功能(采集接收到的數據保存在本地數據庫文件中)
4.簡(jiǎn)單的配置可以輕松發(fā)布到主流網(wǎng)站或者api接口
二、微信公眾號文章采集主要步驟
1、創(chuàng )建“添加公眾號”任務(wù)
登錄軟件打開(kāi)左上角“自定義公眾號”,鼠標右鍵添加公眾號框,點(diǎn)擊獲取軟件自動(dòng)獲取公眾號信息,然后添加到群中。

2、填寫(xiě)公眾號名稱(chēng)或ID為采集
填寫(xiě)基本信息如下圖:

只需填寫(xiě)任務(wù)名稱(chēng)和采集的微信公眾號名稱(chēng)或ID即可。提示:可以查看文章的圖片前后自動(dòng)過(guò)濾
使用廣告圖片功能刪除廣告(功能需提前勾選)
使用公眾號標簽
3、設置圖片下載(可選)
由于微信公眾號文章上的圖片經(jīng)過(guò)防盜鏈處理,采集收到的原創(chuàng )圖片無(wú)法正常顯示。如果需要圖片,需要配置圖片下載:

您可以選擇“上傳設置(通過(guò)ftp返回您的服務(wù)器)”或直接遠程調用。
4、開(kāi)始采集
圖片配置好后,可以點(diǎn)擊左上角的“采集”,采集數據:

5、采集 后期數據處理與發(fā)布
啟動(dòng)采集后,總是會(huì )出來(lái)數據采集,文章可以預覽,顯示圖形內容,添加到“任務(wù)列表”頁(yè)面查看:勾選后文章, 選擇發(fā)布任務(wù)

可以分配到一個(gè)類(lèi)別或列;

在任務(wù)列表中,您可以發(fā)布:

最后選擇發(fā)布到自己的系統。如果軟件上現成的界面與你的網(wǎng)站界面匹配,直接填寫(xiě)網(wǎng)址、后臺網(wǎng)址、賬號密碼等,點(diǎn)擊登錄成功。

querylist采集微信公眾號文章(大文本的分詞對接搜狗對搜狗中文分詞工具baiduspider對接)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 139 次瀏覽 ? 2021-12-15 23:07
querylist采集微信公眾號文章,支持微信公眾號文章、自媒體文章、微博文章等。動(dòng)態(tài)切換國內文章及國外的文章。支持采集天貓、京東、拼多多等主流電商平臺的文章。實(shí)現對接coredns及urllib2。大文本的分詞對接搜狗對搜狗中文分詞工具baiduspider,可選擇對接gbk分詞或wa/wa模式。
支持實(shí)現從文本中匹配關(guān)鍵詞并生成目標文章鏈接。支持實(shí)現對接原創(chuàng )保護機制,支持markdown等第三方工具的寫(xiě)作。動(dòng)態(tài)拓展javascript全局變量。實(shí)現更多的功能以及讀取文章、分析文章等。公眾號點(diǎn)贊微信公眾號可以自動(dòng)同步文章,通過(guò)點(diǎn)贊實(shí)現文章分享及編輯。點(diǎn)贊記錄直接存儲在數據庫中。點(diǎn)贊實(shí)現歷史文章自動(dòng)分類(lèi)功能。
獲取文章作者微信公眾號文章作者可以基于文章token來(lái)獲取其值。單篇文章作者的信息實(shí)時(shí)同步到本地服務(wù)器。在文章詳情頁(yè)可以對文章作者進(jìn)行權限設置,用戶(hù)可以設置僅對該作者可見(jiàn)。通過(guò)注冊獲取高級權限,用戶(hù)可以對文章進(jìn)行推薦,被推薦后文章可以通過(guò)頭條、微信、微博三種渠道進(jìn)行展示。文章推薦基于token進(jìn)行流量推薦,推薦準確度提升30%-50%。個(gè)人介紹。
謝邀你是指知乎的話(huà)可以嗎,一開(kāi)始我是想去找的,不過(guò)想了想不如開(kāi)個(gè)主頁(yè),自己推薦。
可以,用weixinjs,用最新版的,就是不知道知乎能不能用。每天可以獲取20個(gè)贊。點(diǎn)贊不多的話(huà)還可以買(mǎi)贊。 查看全部
querylist采集微信公眾號文章(大文本的分詞對接搜狗對搜狗中文分詞工具baiduspider對接)
querylist采集微信公眾號文章,支持微信公眾號文章、自媒體文章、微博文章等。動(dòng)態(tài)切換國內文章及國外的文章。支持采集天貓、京東、拼多多等主流電商平臺的文章。實(shí)現對接coredns及urllib2。大文本的分詞對接搜狗對搜狗中文分詞工具baiduspider,可選擇對接gbk分詞或wa/wa模式。
支持實(shí)現從文本中匹配關(guān)鍵詞并生成目標文章鏈接。支持實(shí)現對接原創(chuàng )保護機制,支持markdown等第三方工具的寫(xiě)作。動(dòng)態(tài)拓展javascript全局變量。實(shí)現更多的功能以及讀取文章、分析文章等。公眾號點(diǎn)贊微信公眾號可以自動(dòng)同步文章,通過(guò)點(diǎn)贊實(shí)現文章分享及編輯。點(diǎn)贊記錄直接存儲在數據庫中。點(diǎn)贊實(shí)現歷史文章自動(dòng)分類(lèi)功能。
獲取文章作者微信公眾號文章作者可以基于文章token來(lái)獲取其值。單篇文章作者的信息實(shí)時(shí)同步到本地服務(wù)器。在文章詳情頁(yè)可以對文章作者進(jìn)行權限設置,用戶(hù)可以設置僅對該作者可見(jiàn)。通過(guò)注冊獲取高級權限,用戶(hù)可以對文章進(jìn)行推薦,被推薦后文章可以通過(guò)頭條、微信、微博三種渠道進(jìn)行展示。文章推薦基于token進(jìn)行流量推薦,推薦準確度提升30%-50%。個(gè)人介紹。
謝邀你是指知乎的話(huà)可以嗎,一開(kāi)始我是想去找的,不過(guò)想了想不如開(kāi)個(gè)主頁(yè),自己推薦。
可以,用weixinjs,用最新版的,就是不知道知乎能不能用。每天可以獲取20個(gè)贊。點(diǎn)贊不多的話(huà)還可以買(mǎi)贊。
querylist采集微信公眾號文章(新媒體編輯者如何采集微信公眾號文章的文章鏈接?)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 122 次瀏覽 ? 2021-12-14 07:26
當我們看到一個(gè)優(yōu)秀的公眾號文章時(shí),如果我們想轉載到我們的公眾號,我們會(huì )直接復制粘貼全文。不過(guò),這種方法雖然簡(jiǎn)單,但實(shí)用性并不強。因為粘貼之后我們會(huì )發(fā)現格式或者樣式經(jīng)常出錯,修改起來(lái)比較困難。
事實(shí)上,這種方法已經(jīng)過(guò)時(shí)了?,F在新媒體編輯經(jīng)常使用一些微信編輯來(lái)幫助處理這類(lèi)問(wèn)題。今天小編就以目前主流的微信編輯器為例,教大家如何采集其他微信公眾號文章到您的微信公眾平臺。
第一步:首先在百度上搜索小螞蟻編輯器,點(diǎn)擊進(jìn)入網(wǎng)址
第二步:點(diǎn)擊采集,將采集的微信文章鏈接地址粘貼到“文章URL”框中
第三步:點(diǎn)擊“采集”,此時(shí)文章的所有內容已經(jīng)采集到微信編輯器,可以編輯修改文章。編輯完后可以點(diǎn)擊旁邊的復制(相當于復制全文),然后粘貼到微信素材編輯的正文中。
ps:這里獲取微信文章鏈接主要有兩種方式:
方法一:直接在手機上找到文章點(diǎn)擊右上角復制
方法二:在小螞蟻編輯器的微信營(yíng)銷(xiāo)工具中搜索熱搜圖文中的素材,直接復制文章上面的網(wǎng)址即可。
,
這個(gè)怎么樣?你有沒(méi)有得到另一個(gè)技能(括號笑)。這只是小螞蟻微信編輯器中的一個(gè)小功能,還收錄了一些常用的功能,如微信圖文提取、微信超鏈接、微信短網(wǎng)址、微信一鍵關(guān)注頁(yè)面等。新媒體數量 編輯喜歡使用它的主要原因。返回搜狐查看更多 查看全部
querylist采集微信公眾號文章(新媒體編輯者如何采集微信公眾號文章的文章鏈接?)
當我們看到一個(gè)優(yōu)秀的公眾號文章時(shí),如果我們想轉載到我們的公眾號,我們會(huì )直接復制粘貼全文。不過(guò),這種方法雖然簡(jiǎn)單,但實(shí)用性并不強。因為粘貼之后我們會(huì )發(fā)現格式或者樣式經(jīng)常出錯,修改起來(lái)比較困難。
事實(shí)上,這種方法已經(jīng)過(guò)時(shí)了?,F在新媒體編輯經(jīng)常使用一些微信編輯來(lái)幫助處理這類(lèi)問(wèn)題。今天小編就以目前主流的微信編輯器為例,教大家如何采集其他微信公眾號文章到您的微信公眾平臺。
第一步:首先在百度上搜索小螞蟻編輯器,點(diǎn)擊進(jìn)入網(wǎng)址

第二步:點(diǎn)擊采集,將采集的微信文章鏈接地址粘貼到“文章URL”框中

第三步:點(diǎn)擊“采集”,此時(shí)文章的所有內容已經(jīng)采集到微信編輯器,可以編輯修改文章。編輯完后可以點(diǎn)擊旁邊的復制(相當于復制全文),然后粘貼到微信素材編輯的正文中。

ps:這里獲取微信文章鏈接主要有兩種方式:
方法一:直接在手機上找到文章點(diǎn)擊右上角復制

方法二:在小螞蟻編輯器的微信營(yíng)銷(xiāo)工具中搜索熱搜圖文中的素材,直接復制文章上面的網(wǎng)址即可。

,

這個(gè)怎么樣?你有沒(méi)有得到另一個(gè)技能(括號笑)。這只是小螞蟻微信編輯器中的一個(gè)小功能,還收錄了一些常用的功能,如微信圖文提取、微信超鏈接、微信短網(wǎng)址、微信一鍵關(guān)注頁(yè)面等。新媒體數量 編輯喜歡使用它的主要原因。返回搜狐查看更多
querylist采集微信公眾號文章(如何抓取微信公眾號的文章內容、閱讀數、點(diǎn)贊數、發(fā)表時(shí)間和作者)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 235 次瀏覽 ? 2021-12-13 14:07
如何抓取微信公眾號的內容、閱讀數、點(diǎn)贊數、發(fā)表時(shí)間和作者?-:拓圖數據可以做到,文章內容、閱讀數、點(diǎn)贊數、發(fā)表時(shí)間和作者可用
如何搶微信公眾號文章-:你是說(shuō)抄襲嗎?手機長(cháng)按,點(diǎn)擊要復制的內容。您可以使用搜狗在電腦上進(jìn)行搜索。有微信欄目,可以搜索微信公眾號,直接搜索你需要的公眾號,電腦上復制粘貼即可
采集微信公眾號文章,如何采集?-:用鍵盤(pán)加速排行。登錄后,在編輯區右側找到導入文章按鈕,然后將文章地址復制進(jìn)去,然后就可以采集下來(lái)了,還是需要在采集之后修改,否則不會(huì )變成原創(chuàng )。
超實(shí)用技巧:如何采集微信公眾號文章-:選對產(chǎn)品很重要!下面是優(yōu)采云軟件智能文章采集系統,你可以了解一、智能區塊算法采集任何內容站點(diǎn),真的傻瓜式< @采集智能塊算法自動(dòng)提取網(wǎng)頁(yè)正文內容,無(wú)需配置源碼規則,真正傻瓜式采集;自動(dòng)去噪,可修正標題內容中的圖片\...
如何抓取微信公眾號發(fā)布的文章的閱讀和點(diǎn)贊數-:思路一,使用rss生成工具將搜狗的微信搜索結果生成一個(gè)rss,然后通過(guò)監控公眾號的文章rss @>更新。(理論上應該是可以的,但我沒(méi)試過(guò)) 思路二,自己做一個(gè)桌面瀏覽器,IE內核。使用此瀏覽器登錄網(wǎng)頁(yè)版微信,此微信號關(guān)注您要抓取的公眾號,因此您可以監控這些公眾號是否有更新,以及更新后鏈接是什么,從而達到目的的數據捕獲。(用過(guò),效率不高,但是很穩定) 思路三,通過(guò)修改Android微信客戶(hù)端實(shí)現(這個(gè)方法我們用了一段時(shí)間) 思路四,
如何采集或爬取微信公眾號文章-:使用ForeSpider數據采集軟件嗅探之前就可以采集微信公眾號文章。是一款可視化萬(wàn)能爬蟲(chóng)軟件。簡(jiǎn)單的配置兩步就可以完成采集,軟件還自帶了一個(gè)免費的數據庫,你可以直接存儲采集。如果不想配置,可以提供配置服務(wù),價(jià)格很便宜。公眾號模板好像可以在軟件里下載。這是免費的。您可以從官方網(wǎng)站下載免費版本進(jìn)行試用。免費版不限制功能。
如何搶采集微信公眾號文章!:難度已達到1),這個(gè)入口地址不固定,一天左右會(huì )變,主要是key值里面。所以,期望通過(guò)人工手動(dòng)抓取一勞永逸獲得的地址沒(méi)有太大的實(shí)用價(jià)值2),這個(gè)入口頁(yè)面對于沒(méi)有關(guān)注的用戶(hù)只能看到第一頁(yè),可以只有關(guān)注后才能看到后續頁(yè)面。后續頁(yè)面只能關(guān)注這個(gè)賬號,但是手動(dòng)關(guān)注多個(gè)賬號的上萬(wàn)粉絲是不現實(shí)的。3),微信對一個(gè)賬號可以關(guān)注的公眾號數量有上限(摘自網(wǎng)絡(luò ))
如何找到公眾號文章采集器?-:鍵盤(pán)喵編輯器可以找到導入文章按鈕,這個(gè)按鈕是復制地址進(jìn)去的,可以放文章@ >采集、采集會(huì )再次出現在編輯區,可以再次編輯。
怎么搶公眾號文章?-:在鍵盤(pán)妙微微信編輯器上找到導入文章按鈕,然后復制文章的鏈接,就可以搶了,然后編輯它自己。
有沒(méi)有采集微信公眾號文章的工具?-:我知道有西瓜助手。西瓜助手是一個(gè)微信素材庫。一鍵查找文章素材采集素材庫可分類(lèi)管理,使用過(guò)的素材會(huì )做標記,整體使用更方便。
相關(guān)視頻:2步教你如何快速抓取音頻素材,如何快速將音頻轉成文本形式,通過(guò)爬蟲(chóng)插件抓取外貿買(mǎi)家郵箱【云之盟】Python爬蟲(chóng)從入門(mén)到精通1688阿里巴巴商家電話(huà)采集軟件的使用方式讓人震驚!學(xué)習Python爬蟲(chóng)后,某網(wǎng)站接單,3天賺了1650元!新華社客戶(hù)端V6.0版上線(xiàn),移動(dòng)信息旗艦瞄準哪些新趨勢可怕!LED廣告屏百米內可獲取您的電話(huà)號碼,每月采集8億個(gè)人數據。如何處理科學(xué)研究中出現的海量數據?高能物理為網(wǎng)絡(luò )視頻提取神器提供了新思路,支持全網(wǎng)任意網(wǎng)頁(yè)。并在國內外,非商業(yè)定位自帶轉換功能!農村的數據同樣豐富!陜西地圖最新版上線(xiàn) 查看全部
querylist采集微信公眾號文章(如何抓取微信公眾號的文章內容、閱讀數、點(diǎn)贊數、發(fā)表時(shí)間和作者)
如何抓取微信公眾號的內容、閱讀數、點(diǎn)贊數、發(fā)表時(shí)間和作者?-:拓圖數據可以做到,文章內容、閱讀數、點(diǎn)贊數、發(fā)表時(shí)間和作者可用
如何搶微信公眾號文章-:你是說(shuō)抄襲嗎?手機長(cháng)按,點(diǎn)擊要復制的內容。您可以使用搜狗在電腦上進(jìn)行搜索。有微信欄目,可以搜索微信公眾號,直接搜索你需要的公眾號,電腦上復制粘貼即可
采集微信公眾號文章,如何采集?-:用鍵盤(pán)加速排行。登錄后,在編輯區右側找到導入文章按鈕,然后將文章地址復制進(jìn)去,然后就可以采集下來(lái)了,還是需要在采集之后修改,否則不會(huì )變成原創(chuàng )。
超實(shí)用技巧:如何采集微信公眾號文章-:選對產(chǎn)品很重要!下面是優(yōu)采云軟件智能文章采集系統,你可以了解一、智能區塊算法采集任何內容站點(diǎn),真的傻瓜式< @采集智能塊算法自動(dòng)提取網(wǎng)頁(yè)正文內容,無(wú)需配置源碼規則,真正傻瓜式采集;自動(dòng)去噪,可修正標題內容中的圖片\...
如何抓取微信公眾號發(fā)布的文章的閱讀和點(diǎn)贊數-:思路一,使用rss生成工具將搜狗的微信搜索結果生成一個(gè)rss,然后通過(guò)監控公眾號的文章rss @>更新。(理論上應該是可以的,但我沒(méi)試過(guò)) 思路二,自己做一個(gè)桌面瀏覽器,IE內核。使用此瀏覽器登錄網(wǎng)頁(yè)版微信,此微信號關(guān)注您要抓取的公眾號,因此您可以監控這些公眾號是否有更新,以及更新后鏈接是什么,從而達到目的的數據捕獲。(用過(guò),效率不高,但是很穩定) 思路三,通過(guò)修改Android微信客戶(hù)端實(shí)現(這個(gè)方法我們用了一段時(shí)間) 思路四,
如何采集或爬取微信公眾號文章-:使用ForeSpider數據采集軟件嗅探之前就可以采集微信公眾號文章。是一款可視化萬(wàn)能爬蟲(chóng)軟件。簡(jiǎn)單的配置兩步就可以完成采集,軟件還自帶了一個(gè)免費的數據庫,你可以直接存儲采集。如果不想配置,可以提供配置服務(wù),價(jià)格很便宜。公眾號模板好像可以在軟件里下載。這是免費的。您可以從官方網(wǎng)站下載免費版本進(jìn)行試用。免費版不限制功能。
如何搶采集微信公眾號文章!:難度已達到1),這個(gè)入口地址不固定,一天左右會(huì )變,主要是key值里面。所以,期望通過(guò)人工手動(dòng)抓取一勞永逸獲得的地址沒(méi)有太大的實(shí)用價(jià)值2),這個(gè)入口頁(yè)面對于沒(méi)有關(guān)注的用戶(hù)只能看到第一頁(yè),可以只有關(guān)注后才能看到后續頁(yè)面。后續頁(yè)面只能關(guān)注這個(gè)賬號,但是手動(dòng)關(guān)注多個(gè)賬號的上萬(wàn)粉絲是不現實(shí)的。3),微信對一個(gè)賬號可以關(guān)注的公眾號數量有上限(摘自網(wǎng)絡(luò ))
如何找到公眾號文章采集器?-:鍵盤(pán)喵編輯器可以找到導入文章按鈕,這個(gè)按鈕是復制地址進(jìn)去的,可以放文章@ >采集、采集會(huì )再次出現在編輯區,可以再次編輯。
怎么搶公眾號文章?-:在鍵盤(pán)妙微微信編輯器上找到導入文章按鈕,然后復制文章的鏈接,就可以搶了,然后編輯它自己。
有沒(méi)有采集微信公眾號文章的工具?-:我知道有西瓜助手。西瓜助手是一個(gè)微信素材庫。一鍵查找文章素材采集素材庫可分類(lèi)管理,使用過(guò)的素材會(huì )做標記,整體使用更方便。
相關(guān)視頻:2步教你如何快速抓取音頻素材,如何快速將音頻轉成文本形式,通過(guò)爬蟲(chóng)插件抓取外貿買(mǎi)家郵箱【云之盟】Python爬蟲(chóng)從入門(mén)到精通1688阿里巴巴商家電話(huà)采集軟件的使用方式讓人震驚!學(xué)習Python爬蟲(chóng)后,某網(wǎng)站接單,3天賺了1650元!新華社客戶(hù)端V6.0版上線(xiàn),移動(dòng)信息旗艦瞄準哪些新趨勢可怕!LED廣告屏百米內可獲取您的電話(huà)號碼,每月采集8億個(gè)人數據。如何處理科學(xué)研究中出現的海量數據?高能物理為網(wǎng)絡(luò )視頻提取神器提供了新思路,支持全網(wǎng)任意網(wǎng)頁(yè)。并在國內外,非商業(yè)定位自帶轉換功能!農村的數據同樣豐富!陜西地圖最新版上線(xiàn)
querylist采集微信公眾號文章(新建微信公眾號采集任務(wù)配置采集結果附錄(一) )
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 137 次瀏覽 ? 2021-12-09 15:03
)
???使用優(yōu)采云采集微信公眾號文章,很簡(jiǎn)單,只需輸入:公眾號ID或姓名或關(guān)鍵詞。
使用步驟:新建一個(gè)微信公眾號采集任務(wù)微信公眾號采集任務(wù)配置采集結果微信文章幾個(gè)采集) 1.新微信公眾號采集任務(wù):
??新增微信公眾號采集任務(wù)入口有兩個(gè):
2.微信公眾號采集任務(wù)配置:
3. 采集結果:
??微信公眾號名稱(chēng)(weixin_name)、公眾號ID(weixin_id)、標題(title)、正文(內容)、發(fā)布日期(pubData)、作者(author)、標簽(tag)、描述(description),可以使用文字截取) 和關(guān)鍵字(keywords);
附錄:(如何獲取公眾號和微信文章零散采集)
我。如何獲取公眾號
??在“公眾號(WeChat ID)”中填寫(xiě)微信帳號名稱(chēng),然后點(diǎn)擊旁邊的“查看公眾號”按鈕即可查看微信ID;
??以“萬(wàn)維網(wǎng)”為例:
二、微信文章隨機采集
??微信文章分片采集一般用于精度采集,用戶(hù)只需輸入微信文章地址采集。
??在微信公眾號文章采集的基本信息頁(yè)面,點(diǎn)擊“手動(dòng)進(jìn)入文章鏈接采集(可選)”按鈕;
??輸入單個(gè)或多個(gè)詳細 URL,每行一個(gè),以 or 開(kāi)頭;
查看全部
querylist采集微信公眾號文章(新建微信公眾號采集任務(wù)配置采集結果附錄(一)
)
???使用優(yōu)采云采集微信公眾號文章,很簡(jiǎn)單,只需輸入:公眾號ID或姓名或關(guān)鍵詞。
使用步驟:新建一個(gè)微信公眾號采集任務(wù)微信公眾號采集任務(wù)配置采集結果微信文章幾個(gè)采集) 1.新微信公眾號采集任務(wù):
??新增微信公眾號采集任務(wù)入口有兩個(gè):

2.微信公眾號采集任務(wù)配置:

3. 采集結果:
??微信公眾號名稱(chēng)(weixin_name)、公眾號ID(weixin_id)、標題(title)、正文(內容)、發(fā)布日期(pubData)、作者(author)、標簽(tag)、描述(description),可以使用文字截取) 和關(guān)鍵字(keywords);

附錄:(如何獲取公眾號和微信文章零散采集)
我。如何獲取公眾號
??在“公眾號(WeChat ID)”中填寫(xiě)微信帳號名稱(chēng),然后點(diǎn)擊旁邊的“查看公眾號”按鈕即可查看微信ID;
??以“萬(wàn)維網(wǎng)”為例:



二、微信文章隨機采集
??微信文章分片采集一般用于精度采集,用戶(hù)只需輸入微信文章地址采集。
??在微信公眾號文章采集的基本信息頁(yè)面,點(diǎn)擊“手動(dòng)進(jìn)入文章鏈接采集(可選)”按鈕;

??輸入單個(gè)或多個(gè)詳細 URL,每行一個(gè),以 or 開(kāi)頭;

querylist采集微信公眾號文章(工業(yè)界用ai的方法做實(shí)驗數據和實(shí)驗的過(guò)程)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 115 次瀏覽 ? 2021-12-08 13:15
querylist采集微信公眾號文章列表,如果要找某個(gè)名稱(chēng)的文章需要列舉數據挖掘領(lǐng)域屬于svm,相當于a-log.機器學(xué)習目前主要是找出中文,但是更多用了機器學(xué)習.
要看你的算法類(lèi)型,如果屬于nlp,基本屬于機器學(xué)習??赡苣阕龅脤?shí)驗在工業(yè)界有用,可是面試,
如果你的實(shí)驗設計不同于工業(yè)界應用的算法,那么工業(yè)界在面試時(shí)可能會(huì )讓你介紹一下實(shí)驗方法,但一般不會(huì )要求你介紹實(shí)驗數據和實(shí)驗過(guò)程。
對于工業(yè)界來(lái)說(shuō),肯定是機器學(xué)習更合適。對于科研來(lái)說(shuō),算法數據,有意義。但人也能學(xué)得會(huì )。
希望樓主有基礎了還有問(wèn)題先查一下,特別是acm競賽還有實(shí)習工作的話(huà),
機器學(xué)習,數據挖掘,統計推斷,感覺(jué)是兩類(lèi)完全不同的東西,放一起比,簡(jiǎn)直笑掉大牙。
不請自來(lái),
哈哈哈我想看看這個(gè)問(wèn)題我沒(méi)多久才有人能答上來(lái)
希望樓主用ai的方法做實(shí)驗,到時(shí)候能多一點(diǎn)信心。具體去哪里做,看具體情況。
后者發(fā)展不受市場(chǎng)影響,更多需要數據和算法背景。兩種是不一樣的。前者從頭計算,優(yōu)勢是一下就能看到,劣勢是太復雜,有的時(shí)候還會(huì )碰到技術(shù)難點(diǎn),很多細節沒(méi)法多想。
兩種方向都做過(guò),推薦后者,工業(yè)界用機器學(xué)習算法的太多了,你能做的東西比他們多太多了,實(shí)驗做多了,看多了,很多時(shí)候比較容易找到用途。并且不管是哪種,其實(shí)都需要一定的數學(xué)功底,所以基礎好的比較好,最后成為某個(gè)細分領(lǐng)域專(zhuān)家還是有可能的。 查看全部
querylist采集微信公眾號文章(工業(yè)界用ai的方法做實(shí)驗數據和實(shí)驗的過(guò)程)
querylist采集微信公眾號文章列表,如果要找某個(gè)名稱(chēng)的文章需要列舉數據挖掘領(lǐng)域屬于svm,相當于a-log.機器學(xué)習目前主要是找出中文,但是更多用了機器學(xué)習.
要看你的算法類(lèi)型,如果屬于nlp,基本屬于機器學(xué)習??赡苣阕龅脤?shí)驗在工業(yè)界有用,可是面試,
如果你的實(shí)驗設計不同于工業(yè)界應用的算法,那么工業(yè)界在面試時(shí)可能會(huì )讓你介紹一下實(shí)驗方法,但一般不會(huì )要求你介紹實(shí)驗數據和實(shí)驗過(guò)程。
對于工業(yè)界來(lái)說(shuō),肯定是機器學(xué)習更合適。對于科研來(lái)說(shuō),算法數據,有意義。但人也能學(xué)得會(huì )。
希望樓主有基礎了還有問(wèn)題先查一下,特別是acm競賽還有實(shí)習工作的話(huà),
機器學(xué)習,數據挖掘,統計推斷,感覺(jué)是兩類(lèi)完全不同的東西,放一起比,簡(jiǎn)直笑掉大牙。
不請自來(lái),
哈哈哈我想看看這個(gè)問(wèn)題我沒(méi)多久才有人能答上來(lái)
希望樓主用ai的方法做實(shí)驗,到時(shí)候能多一點(diǎn)信心。具體去哪里做,看具體情況。
后者發(fā)展不受市場(chǎng)影響,更多需要數據和算法背景。兩種是不一樣的。前者從頭計算,優(yōu)勢是一下就能看到,劣勢是太復雜,有的時(shí)候還會(huì )碰到技術(shù)難點(diǎn),很多細節沒(méi)法多想。
兩種方向都做過(guò),推薦后者,工業(yè)界用機器學(xué)習算法的太多了,你能做的東西比他們多太多了,實(shí)驗做多了,看多了,很多時(shí)候比較容易找到用途。并且不管是哪種,其實(shí)都需要一定的數學(xué)功底,所以基礎好的比較好,最后成為某個(gè)細分領(lǐng)域專(zhuān)家還是有可能的。
querylist采集微信公眾號文章( 數點(diǎn)java和js的主要特點(diǎn)是什么?-八維教育)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 187 次瀏覽 ? 2021-12-08 05:04
數點(diǎn)java和js的主要特點(diǎn)是什么?-八維教育)
<p>本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 這幾天接到任務(wù),需要開(kāi)發(fā)一個(gè)微信榜單的功能,因此需要采集微信公眾號文章的閱讀數,點(diǎn)贊數和評論數,榜單內的微信公眾號有一百多個(gè),每個(gè)月出一次榜單。 <br /> 接到這個(gè)任務(wù),我開(kāi)始研究如何抓取微信閱讀數,點(diǎn)贊數和評論數,通過(guò)大量參考網(wǎng)上的技術(shù)文章,最終確定了我所使用的方案:使用Fiddler進(jìn)行采集 <br /> 本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 第一步:設置Fiddler <br /> <br /> 如圖設置,此處為設置Fiddler支持https
本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 第二步:設置Fiddler腳本 <br /> Fiddler工具打開(kāi)后,選擇Rules ->Customize Rules打開(kāi)Fiddler ScriptEditor編輯器,編輯器如下: <br /> <br /> 這里我們只需要了解OnBeforeResponse方法,本方法為在http請求返回給客戶(hù)端之前執行的方法,我們主要在本方法內進(jìn)行腳本的編寫(xiě)
本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 第三步:選擇性截取responsebody存儲到文本中 <br /> 研究各個(gè)請求,找到返回點(diǎn)贊數與評論的請求,具體請求如圖: <br /> <br /> 然后開(kāi)始在Fiddler ScriptEditor的方法中編寫(xiě)具體的存儲腳本:
// 首先判斷請求域名是否是自己感興趣的,以及URL中是否含有自己感興趣的特征字符串。如果是,則將該請求的URL和QueryString記錄到日志文件 "c:/fiddler-token.log"中。
if (oSession.HostnameIs("mp.weixin.qq.com") && oSession.uriContains("https://mp.weixin.qq.com/mp/getappmsgext")){
var filename = "C:/fiddler-token.log";
var curDate = new Date();
var logContent = "[" + curDate.toLocaleString() + "] " + oSession.PathAndQuery + "\r\n"+oSession.GetResponseBodyAsString()+"\r\n";
var sw : System.IO.StreamWriter;
if (System.IO.File.Exists(filename)){
sw = System.IO.File.AppendText(filename);
sw.Write(logContent);
}
else{
sw = System.IO.File.CreateText(filename);
sw.Write(logContent);
}
sw.Close();
sw.Dispose();
}</p>
這段代碼的作用是存儲文本中閱讀和點(diǎn)贊數相關(guān)的數據,結果如圖:
本文章為lonter首創(chuàng ),僅在csdn平臺發(fā)布,嚴禁轉載
第四步:篡改公眾號文章頁(yè)面的js代碼,讓頁(yè)面按照你的意圖自動(dòng)跳轉
由于這個(gè)功能可能涉及灰色地帶,所以請聲明,不要用它來(lái)做壞事?。?!
我們來(lái)看看公眾號文章的主頁(yè):
很明顯,每個(gè)js腳本都是以script nonce="1007993124"開(kāi)頭,nonce字段是用來(lái)防止xxs的。如果 js 的 nonce 與原創(chuàng )的 nonce 不匹配,則不會(huì )執行 js。因此,需要在腳本中稍微寫(xiě)一下,具體邏輯代碼如圖:
這個(gè)js加載完成后,保存Fiddler ScriptEditor,然后點(diǎn)擊微信公眾號文章,在Fiddler中會(huì )看到如下內容:
然后,當你回來(lái)找頁(yè)面時(shí)會(huì )自動(dòng)跳轉
本文章為lonter首創(chuàng ),僅在csdn平臺發(fā)布,嚴禁轉載
第五步:獲取開(kāi)發(fā)任務(wù)頁(yè)面
我們需要開(kāi)發(fā)一個(gè)微信轉賬頁(yè)面,這個(gè)頁(yè)面會(huì )從后臺獲取一個(gè)微信公眾號文章,然后讓微信瀏覽器打開(kāi)
具體的html如下:
window.onload=function(){
nextdoor();
}
function nextdoor(){
var taskid=GetQueryString("taskid")
var ob={task:taskid};
$.ajax({
type: "POST",
url: "rest/wxCrawler/wxTask",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(ob),
dataType: "json",
success: function (message) {
var url=message.url;
var taskid=message.task;//每個(gè)微信客戶(hù)端的id,這個(gè)id應該在后端自動(dòng)生成
if(url==("http://127.0.0.1:8080/External ... taskid))
{
setTimeout(function(){window.location="http://127.0.0.1:8080/External ... id%3B},10000);
}else
{
//alert(url+"&taskid="+taskid);
window.location=url+"&taskid="+taskid+"#rd";
}
},
error: function (message) {
alert("提交數據失敗");
}
});
}
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)return unescape(r[2]); return null;
}
閱讀刷新中轉頁(yè)面,頁(yè)面正在跳轉中...
如一直刷新本頁(yè)面,則一直等待后臺分配任務(wù)
至于后端接口,我想很多人都可以寫(xiě),我只做一部分:
package test.springmvc;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.mangofactory.swagger.plugin.EnableSwagger;
import com.wordnik.swagger.annotations.ApiOperation;
import net.sf.json.JSONObject;
import test.springmvc.Artmodel.WxTask;
import test.springmvc.redis.JedisUtil;
/**
*
* @author Administrator
*
*/
@Controller
@EnableSwagger
@RequestMapping("/wxCrawler")
public class TopController {
private final static Logger logger = LoggerFactory.getLogger(TopController.class);
JedisUtil ju=new JedisUtil();
@ApiOperation(value = "微信任務(wù)調度接口", notes = "notes", httpMethod = "POST", produces = MediaType.APPLICATION_JSON_VALUE)
@RequestMapping(value = "wxTask", method = RequestMethod.POST)
@ResponseBody
// 使用了@RequestBody,不能在攔截器中,獲得流中的數據,再json轉換,攔截器中,也不清楚數據的類(lèi)型,無(wú)法轉換成java對象
// 只能手動(dòng)調用方法
public String WeixinTask(@RequestBody WxTask wt) {
String task=wt.getTask();
byte[] redisKey= task.getBytes();//隊列名稱(chēng)
byte[] bys=ju.rpop(redisKey);
if(bys==null)
{
JSONObject json=new JSONObject();
json.put("url", "http://127.0.0.1:8080/External ... 2Btask);
json.put("task", task);
return json.toString();
}else
{
String info=new String(bys);
JSONObject json=JSONObject.fromObject(info);
String url=json.getString("url");
url=url.replace("#rd", "");
json.put("url", url);
json.put("task", task);
return json.toString();
}
}
}
這部分java和js的主要特點(diǎn)是可以進(jìn)行多任務(wù)分布式爬蟲(chóng)。至此,全部開(kāi)發(fā)完成
你只需要寫(xiě)幾十萬(wàn)公眾號文章鏈接,然后用微信打開(kāi):8080/Externalservice/test.html?taskid=xxxxxl 這樣的轉賬頁(yè)面,你會(huì )發(fā)現微信瀏覽器一直跳躍時(shí)
本文章為lonter首創(chuàng ),僅在csdn平臺發(fā)布,嚴禁轉載
第六步:解析存儲在 Fiddler 中的文本
<p>package com.crawler.top;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import com.mysql.jdbc.UpdatableResultSet;
import com.util.DBUtil;
import net.sf.json.JSONObject;
/**
* 讀取Fiddler寫(xiě)入的內容,并將結果寫(xiě)入數據庫
* @author Administrator
*
*/
public class ReaderTxt {
DBUtil dbu=new DBUtil();
public static void main(String[] args)
{
ReaderTxt rt=new ReaderTxt();
ArrayList list=rt.InitTxt();
for(int i=0;i 查看全部
querylist采集微信公眾號文章(
數點(diǎn)java和js的主要特點(diǎn)是什么?-八維教育)
<p>本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 這幾天接到任務(wù),需要開(kāi)發(fā)一個(gè)微信榜單的功能,因此需要采集微信公眾號文章的閱讀數,點(diǎn)贊數和評論數,榜單內的微信公眾號有一百多個(gè),每個(gè)月出一次榜單。 <br /> 接到這個(gè)任務(wù),我開(kāi)始研究如何抓取微信閱讀數,點(diǎn)贊數和評論數,通過(guò)大量參考網(wǎng)上的技術(shù)文章,最終確定了我所使用的方案:使用Fiddler進(jìn)行采集 <br /> 本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 第一步:設置Fiddler <br />
本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 第二步:設置Fiddler腳本 <br /> Fiddler工具打開(kāi)后,選擇Rules ->Customize Rules打開(kāi)Fiddler ScriptEditor編輯器,編輯器如下: <br />
本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 第三步:選擇性截取responsebody存儲到文本中 <br /> 研究各個(gè)請求,找到返回點(diǎn)贊數與評論的請求,具體請求如圖: <br />
// 首先判斷請求域名是否是自己感興趣的,以及URL中是否含有自己感興趣的特征字符串。如果是,則將該請求的URL和QueryString記錄到日志文件 "c:/fiddler-token.log"中。
if (oSession.HostnameIs("mp.weixin.qq.com") && oSession.uriContains("https://mp.weixin.qq.com/mp/getappmsgext")){
var filename = "C:/fiddler-token.log";
var curDate = new Date();
var logContent = "[" + curDate.toLocaleString() + "] " + oSession.PathAndQuery + "\r\n"+oSession.GetResponseBodyAsString()+"\r\n";
var sw : System.IO.StreamWriter;
if (System.IO.File.Exists(filename)){
sw = System.IO.File.AppendText(filename);
sw.Write(logContent);
}
else{
sw = System.IO.File.CreateText(filename);
sw.Write(logContent);
}
sw.Close();
sw.Dispose();
}</p>
這段代碼的作用是存儲文本中閱讀和點(diǎn)贊數相關(guān)的數據,結果如圖:
本文章為lonter首創(chuàng ),僅在csdn平臺發(fā)布,嚴禁轉載
第四步:篡改公眾號文章頁(yè)面的js代碼,讓頁(yè)面按照你的意圖自動(dòng)跳轉
由于這個(gè)功能可能涉及灰色地帶,所以請聲明,不要用它來(lái)做壞事?。?!
我們來(lái)看看公眾號文章的主頁(yè):
很明顯,每個(gè)js腳本都是以script nonce="1007993124"開(kāi)頭,nonce字段是用來(lái)防止xxs的。如果 js 的 nonce 與原創(chuàng )的 nonce 不匹配,則不會(huì )執行 js。因此,需要在腳本中稍微寫(xiě)一下,具體邏輯代碼如圖:
這個(gè)js加載完成后,保存Fiddler ScriptEditor,然后點(diǎn)擊微信公眾號文章,在Fiddler中會(huì )看到如下內容:
然后,當你回來(lái)找頁(yè)面時(shí)會(huì )自動(dòng)跳轉
本文章為lonter首創(chuàng ),僅在csdn平臺發(fā)布,嚴禁轉載
第五步:獲取開(kāi)發(fā)任務(wù)頁(yè)面
我們需要開(kāi)發(fā)一個(gè)微信轉賬頁(yè)面,這個(gè)頁(yè)面會(huì )從后臺獲取一個(gè)微信公眾號文章,然后讓微信瀏覽器打開(kāi)
具體的html如下:
window.onload=function(){
nextdoor();
}
function nextdoor(){
var taskid=GetQueryString("taskid")
var ob={task:taskid};
$.ajax({
type: "POST",
url: "rest/wxCrawler/wxTask",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(ob),
dataType: "json",
success: function (message) {
var url=message.url;
var taskid=message.task;//每個(gè)微信客戶(hù)端的id,這個(gè)id應該在后端自動(dòng)生成
if(url==("http://127.0.0.1:8080/External ... taskid))
{
setTimeout(function(){window.location="http://127.0.0.1:8080/External ... id%3B},10000);
}else
{
//alert(url+"&taskid="+taskid);
window.location=url+"&taskid="+taskid+"#rd";
}
},
error: function (message) {
alert("提交數據失敗");
}
});
}
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)return unescape(r[2]); return null;
}
閱讀刷新中轉頁(yè)面,頁(yè)面正在跳轉中...
如一直刷新本頁(yè)面,則一直等待后臺分配任務(wù)
至于后端接口,我想很多人都可以寫(xiě),我只做一部分:
package test.springmvc;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.mangofactory.swagger.plugin.EnableSwagger;
import com.wordnik.swagger.annotations.ApiOperation;
import net.sf.json.JSONObject;
import test.springmvc.Artmodel.WxTask;
import test.springmvc.redis.JedisUtil;
/**
*
* @author Administrator
*
*/
@Controller
@EnableSwagger
@RequestMapping("/wxCrawler")
public class TopController {
private final static Logger logger = LoggerFactory.getLogger(TopController.class);
JedisUtil ju=new JedisUtil();
@ApiOperation(value = "微信任務(wù)調度接口", notes = "notes", httpMethod = "POST", produces = MediaType.APPLICATION_JSON_VALUE)
@RequestMapping(value = "wxTask", method = RequestMethod.POST)
@ResponseBody
// 使用了@RequestBody,不能在攔截器中,獲得流中的數據,再json轉換,攔截器中,也不清楚數據的類(lèi)型,無(wú)法轉換成java對象
// 只能手動(dòng)調用方法
public String WeixinTask(@RequestBody WxTask wt) {
String task=wt.getTask();
byte[] redisKey= task.getBytes();//隊列名稱(chēng)
byte[] bys=ju.rpop(redisKey);
if(bys==null)
{
JSONObject json=new JSONObject();
json.put("url", "http://127.0.0.1:8080/External ... 2Btask);
json.put("task", task);
return json.toString();
}else
{
String info=new String(bys);
JSONObject json=JSONObject.fromObject(info);
String url=json.getString("url");
url=url.replace("#rd", "");
json.put("url", url);
json.put("task", task);
return json.toString();
}
}
}
這部分java和js的主要特點(diǎn)是可以進(jìn)行多任務(wù)分布式爬蟲(chóng)。至此,全部開(kāi)發(fā)完成
你只需要寫(xiě)幾十萬(wàn)公眾號文章鏈接,然后用微信打開(kāi):8080/Externalservice/test.html?taskid=xxxxxl 這樣的轉賬頁(yè)面,你會(huì )發(fā)現微信瀏覽器一直跳躍時(shí)
本文章為lonter首創(chuàng ),僅在csdn平臺發(fā)布,嚴禁轉載
第六步:解析存儲在 Fiddler 中的文本
<p>package com.crawler.top;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import com.mysql.jdbc.UpdatableResultSet;
import com.util.DBUtil;
import net.sf.json.JSONObject;
/**
* 讀取Fiddler寫(xiě)入的內容,并將結果寫(xiě)入數據庫
* @author Administrator
*
*/
public class ReaderTxt {
DBUtil dbu=new DBUtil();
public static void main(String[] args)
{
ReaderTxt rt=new ReaderTxt();
ArrayList list=rt.InitTxt();
for(int i=0;i
querylist采集微信公眾號文章(Python微信公眾號文章爬取一.思路我們通過(guò)網(wǎng)頁(yè)版)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 149 次瀏覽 ? 2021-12-04 23:01
Python微信公眾號文章抓取
一.思考
我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
從界面我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
二. 接口分析
微信公眾號獲取界面:
范圍:
行動(dòng)=search_biz
開(kāi)始=0
計數=5
查詢(xún)=官方帳號名稱(chēng)
token=每個(gè)賬戶(hù)對應的token值
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。
獲取對應公眾號文章的界面:
范圍:
動(dòng)作=list_ex
開(kāi)始=0
計數=5
fakeid=MjM5NDAwMTA2MA==
類(lèi)型=9
查詢(xún)=
令牌=557131216
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以獲取到微信公眾號文章的數據了。
三.實(shí)現第一步:
首先我們需要通過(guò)selenium模擬登錄,然后獲取cookie和對應的token
def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get('https://mp.weixin.qq.com/')
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name='account']")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name='password']")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class='btn_login']").click()
sleep(2)
# 微信登錄驗證
print('請掃描二維碼')
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get('https://mp.weixin.qq.com/')
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item['name']] = item['value']
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open('cookie.txt', 'w+', encoding='utf-8') as f:
f.write(cookie_str)
print('cookie保存到本地成功')
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split('?')[1].split('&')
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split('=')[0]] = item.split('=')[1]
# 返回token
return paramdict['token']
定義了一個(gè)登錄方法,里面的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù),輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,用登錄微信掃一掃即可。
刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token,然后返回。
第二步:1.請求對應的公眾號接口,得到我們需要的fakeid
url = 'https://mp.weixin.qq.com'
headers = {
'HOST': 'mp.weixin.qq.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'
}
with open('cookie.txt', 'r', encoding='utf-8') as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = 'https://mp.weixin.qq.com/cgi-b ... 39%3B
params = {
'action': 'search_biz',
'begin': '0',
'count': '5',
'query': '搜索的公眾號名稱(chēng)',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
傳入我們獲取到的token和cookie,然后通過(guò)requests.get請求獲取返回的微信公眾號的json數據
lists = search_resp.json().get('list')[0]
通過(guò)上面的代碼可以得到對應的公眾號數據
fakeid = lists.get('fakeid')
通過(guò)上面的代碼可以得到對應的fakeid
2.請求獲取微信公眾號文章接口,獲取我們需要的數據文章
appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'
params_data = {
'action': 'list_ex',
'begin': '0',
'count': '5',
'fakeid': fakeid,
'type': '9',
'query': '',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
我們傳入fakeid和token,然后調用requests.get請求接口獲取返回的json數據。
我們已經(jīng)實(shí)現了對微信公眾號文章的抓取。
四.總結
通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,當我們在循環(huán)中獲取文章時(shí),一定要設置延遲時(shí)間,否則賬號很容易被封,獲取不到返回的數據。 查看全部
querylist采集微信公眾號文章(Python微信公眾號文章爬取一.思路我們通過(guò)網(wǎng)頁(yè)版)
Python微信公眾號文章抓取
一.思考
我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面


從界面我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
二. 接口分析
微信公眾號獲取界面:
范圍:
行動(dòng)=search_biz
開(kāi)始=0
計數=5
查詢(xún)=官方帳號名稱(chēng)
token=每個(gè)賬戶(hù)對應的token值
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。

獲取對應公眾號文章的界面:
范圍:
動(dòng)作=list_ex
開(kāi)始=0
計數=5
fakeid=MjM5NDAwMTA2MA==
類(lèi)型=9
查詢(xún)=
令牌=557131216
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以獲取到微信公眾號文章的數據了。

三.實(shí)現第一步:
首先我們需要通過(guò)selenium模擬登錄,然后獲取cookie和對應的token
def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get('https://mp.weixin.qq.com/')
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name='account']")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name='password']")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class='btn_login']").click()
sleep(2)
# 微信登錄驗證
print('請掃描二維碼')
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get('https://mp.weixin.qq.com/')
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item['name']] = item['value']
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open('cookie.txt', 'w+', encoding='utf-8') as f:
f.write(cookie_str)
print('cookie保存到本地成功')
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split('?')[1].split('&')
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split('=')[0]] = item.split('=')[1]
# 返回token
return paramdict['token']
定義了一個(gè)登錄方法,里面的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù),輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,用登錄微信掃一掃即可。
刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token,然后返回。
第二步:1.請求對應的公眾號接口,得到我們需要的fakeid
url = 'https://mp.weixin.qq.com'
headers = {
'HOST': 'mp.weixin.qq.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'
}
with open('cookie.txt', 'r', encoding='utf-8') as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = 'https://mp.weixin.qq.com/cgi-b ... 39%3B
params = {
'action': 'search_biz',
'begin': '0',
'count': '5',
'query': '搜索的公眾號名稱(chēng)',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
傳入我們獲取到的token和cookie,然后通過(guò)requests.get請求獲取返回的微信公眾號的json數據
lists = search_resp.json().get('list')[0]
通過(guò)上面的代碼可以得到對應的公眾號數據
fakeid = lists.get('fakeid')
通過(guò)上面的代碼可以得到對應的fakeid
2.請求獲取微信公眾號文章接口,獲取我們需要的數據文章
appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'
params_data = {
'action': 'list_ex',
'begin': '0',
'count': '5',
'fakeid': fakeid,
'type': '9',
'query': '',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
我們傳入fakeid和token,然后調用requests.get請求接口獲取返回的json數據。
我們已經(jīng)實(shí)現了對微信公眾號文章的抓取。
四.總結
通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,當我們在循環(huán)中獲取文章時(shí),一定要設置延遲時(shí)間,否則賬號很容易被封,獲取不到返回的數據。
querylist采集微信公眾號文章(如何實(shí)現每天爬取微信公眾號的推送文章(二))
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 122 次瀏覽 ? 2021-12-02 01:09
Part 2文章:python爬蟲(chóng)如何抓取微信公眾號文章(二)
接下來(lái)是如何連接python爬蟲(chóng)實(shí)現每天爬取微信公眾號的推送文章
因為最近在法庭實(shí)習,需要一些公眾號資料,然后做成網(wǎng)頁(yè)展示,方便查看。之前寫(xiě)過(guò)一些爬蟲(chóng),但都是爬網(wǎng)站數據。這次覺(jué)得太容易了,但是遇到了很多麻煩,在這里分享給大家。
1、 使用爬蟲(chóng)爬取數據最基本也是最重要的就是找到目標網(wǎng)站的url地址,然后遍歷地址一個(gè)一個(gè)或者多個(gè)爬取線(xiàn)程。一般后續的爬取地址主要是通過(guò)兩種方式獲取,一種是根據頁(yè)面分頁(yè)計算url地址的規律,通常后跟參數page=num,另一種是過(guò)濾掉標簽取當前頁(yè)面的url作為后續的爬取地址。遺憾的是,這兩種方法都不能在微信公眾號中使用。原因是公眾號的文章地址之間沒(méi)有關(guān)聯(lián),不可能通過(guò)文章的地址找到所有的文章@。 >地址。
2、那我們如何獲取公眾號的歷史文章地址呢?一種方法是通過(guò)搜狗微信網(wǎng)站搜索目標公眾號,可以看到最近的文章,但只是最近的,無(wú)法獲取歷史記錄文章 @>。如果你想做一個(gè)每日爬蟲(chóng),你可以用這個(gè)方法每天爬取一篇文章。圖片是這樣的:
3、當然需要的結果還有很多,所以還是得想辦法把所有的歷史文本都弄出來(lái),廢話(huà)少說(shuō),切入正題:
首先要注冊一個(gè)微信公眾號(訂閱號),可以注冊個(gè)人,比較簡(jiǎn)單,步驟網(wǎng)上都有,這里就不介紹了。 (如果您之前有過(guò),則無(wú)需注冊)
注冊后,登錄微信公眾平臺,在首頁(yè)左欄的管理下,有一個(gè)素材管理,如圖:
點(diǎn)擊素材管理,然后選擇圖文信息,然后點(diǎn)擊右側新建圖文素材:
轉到新頁(yè)面并單擊頂部的超鏈接:
然后在彈出的窗口中選擇Find文章,輸入你要爬取的公眾號名稱(chēng),搜索:
然后點(diǎn)擊搜索到的公眾號,可以看到它的全部歷史記錄文章:
4、找到歷史記錄后文章,我們如何編寫(xiě)一個(gè)程序來(lái)獲取所有的URL地址? , 首先我們來(lái)分析一下瀏覽器在點(diǎn)擊公眾號名稱(chēng)時(shí)做了什么,調出查看頁(yè)面,點(diǎn)擊網(wǎng)絡(luò ),先清除所有數據,然后點(diǎn)擊目標公眾號,可以看到如下界面:
點(diǎn)擊字符串后,再點(diǎn)擊標題:
找到將軍。這里的Request Url就是我們的程序需要請求的地址格式。我們需要把它拼接起來(lái)。里面的參數在下面的Query String Parameters里面比較清楚:
這些參數的含義很容易理解。唯一需要說(shuō)明的是,fakeid 是公眾號的唯一標識。每個(gè)公眾號都不一樣。如果爬取其他公眾號,只需要修改這個(gè)參數即可。隨機可以省略。
另外一個(gè)重要的部分是Request Headers,里面收錄了cookie、User-Agent等重要信息,在下面的代碼中會(huì )用到:
5、 經(jīng)過(guò)以上分析,就可以開(kāi)始寫(xiě)代碼了。
需要的第一個(gè)參數:
#目標urlurl = "./cgi-bin/appmsg"#使用cookies,跳過(guò)登錄操作headers = {"Cookie": "ua_id=YF6RyP41YQa2QyQHAAAAAGXPy_he8M8KkNCUbRx0cVU=; pgv_pvi=232_5880d9800000; = 3231163757;門(mén)票= 5bd41c51e53cfce785e5c188f94240aac8fad8e3; TICKET_ID = gh_d5e73af61440;證書(shū)= bVSKoAHHVIldcRZp10_fd7p2aTEXrTi6; noticeLoginFlag = 1; remember_acct = mf1832192%; data_bizuin = 3231163757; data_ticket = XKgzAcTceBFDNN6cFXa4TZAVMlMlxhorD7A0r3vzCDkS ++ pgSpr55NFkQIN3N + / v; slave_sid = bU0yeTNOS2VxcEg5RktUQlZhd2xheVc5bjhoQTVhOHdhMnN2SlVIZGRtU3hvVXJpTWdWakVqcHowd3RuVF9HY19Udm1PbVpQMGVfcnhHVGJQQTVzckpQY042QlZZbnJzel9oam5SdjRFR0tGc0c1eExKQU9ybjgxVnZVZVBtSmVnc29ZcUJWVmNWWEFEaGtk; slave_user = gh_d5e73af61440; XID = 93074c5a87a2e98ddb9e527aa204d0c7; openid2ticket_obaWXwJGb9VV9FiHPMcNq7OZzlzY = lw6SBHGUDQf1lFHqOeShfg39SU7awJMxhDVb4AbVXJM =; mm_lang = zh_CN的 “” 用戶(hù)代理 “:” 的Mozilla / 5
0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36",}data = { "token": "1378111188", "lang ": "zh_CN", "f": "json", "ajax": "1", "action": "list_ex", "begin": "0", "count ": "5", "query": "", "fakeid": "MzU5MDUzMTk5Nw==", "type": "9",}
根據自己的cookie和token進(jìn)行修改,然后發(fā)送請求獲取響應,去掉每篇文章的title和url文章,代碼如下:
content_list = []for i in range(20): data["begin"] = i*5 time.sleep(3) # 使用get方法提交 content_json = requests.get ( url, headers=headers, params=data).json() # 返回一個(gè)json,里面收錄content_json["app_msg_list"]中item每頁(yè)的數據:#提取每頁(yè)的標題和對應文章@ > url items = [] items.append(item["title"]) items.append(item["link"]) content_list.append(items)
第一個(gè) for 循環(huán)是抓取的頁(yè)面數。首先需要看好公眾號文章列表中的總頁(yè)數。這個(gè)數字只能小于頁(yè)數。更改數據["begin"],表示從前幾條開(kāi)始,每次5條,注意爬取太多和太頻繁,否則會(huì )被ip和cookies攔截,嚴重的會(huì )被公眾號被屏蔽了。
然后按如下方式保存標題和網(wǎng)址:
name=["title","link"]test=pd.DataFrame(columns=name,data=content_list)test.to_csv("XXX.csv",mode="a",encoding="utf-8 ")print("保存成功")
完整的程序如下:
# -*- coding: utf-8 -*-import requestsimport timeimport csvimport pandas as pd# Target urlurl = "./cgi-bin/appmsg"# 使用cookies跳過(guò)登錄操作 headers = { “曲奇”:“ua_id = YF6RyP41YQa2QyQHAAAAAGXPy_he8M8KkNCUbRx0cVU =; pgv_pvi = 2045358080; pgv_si = s4132856832; UUID = 48da56b488e5c697909a13dfac91a819; bizuin = 3231163757;門(mén)票= 5bd41c51e53cfce785e5c188f94240aac8fad8e3; TICKET_ID = gh_d5e73af61440;證書(shū)= bVSKoAHHVIldcRZp10_fd7p2aTEXrTi6; noticeLoginFlag = 1; remember_acct = mf1832192%40smail.nju。 ; data_bizuin = 3231163757; data_ticket = XKgzAcTceBFDNN6cFXa4TZAVMlMlxhorD7A0r3vzCDkS ++ pgSpr55NFkQIN3N + / v; slave_sid = bU0yeTNOS2VxcEg5RktUQlZhd2xheVc5bjhoQTVhOHdhMnN2SlVIZGRtU3hvVXJpTWdWakVqcHowd3RuVF9HY19Udm1PbVpQMGVfcnhHVGJQQTVzckpQY042QlZZbnJzel9oam5SdjRFR0tGc0c1eExKQU9ybjgxVnZVZVBtSmVnc29ZcUJWVmNWWEFEaGtk; slave_user = gh_d5e73af61440; XID = 93074c5a87a2e98ddb9e527aa204d0c7; openid2ticket_obaWXwJGb9VV9FiHPMcNq7OZzlzY = lw6SBHGUDQf1lFHqOeShfg39S U7awJMxhDVb4AbVXJM =; mm_lang = zh_CN "," User-Agent ":" Mozilla / 5 .
0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36",}data = { "token": "1378111188", "lang ": "zh_CN", "f": "json", "ajax": "1", "action": "list_ex", "begin": "0", "count ": "5", "query": "", "fakeid": "MzU5MDUzMTk5Nw==", "type": "9",}content_list = []for i in range(20): data[ "begin"] = i*5 time. sleep(3) # 使用get方法提交 content_json = requests.get(url, headers=headers, params=data).json() # 返回一個(gè)json,里面是item中的每個(gè)頁(yè)面的數據content_json["app_msg_list"]: # 提取每個(gè)頁(yè)面的標題文章和對應的url items = [] items.
append(item["title"]) 項。追加(項目[“鏈接”])內容列表。 append(items) print(i)name=["title","link"]test=pd.數據幀(列=名稱(chēng),數據=內容列表)測試。 to_csv("xingzhengzhifa.csv",mode="a",encoding="utf-8")print("保存成功")
最后保存的文件如圖:
獲取每個(gè)文章的url后,就可以遍歷爬取每個(gè)文章的內容。爬取文章內容的部分將在下面的博客中介紹。
補充內容:
關(guān)于如何從小伙伴那里獲取封面圖片和摘要的問(wèn)題,查看瀏覽器可以看到返回的json數據中收錄了很多信息,包括封面圖片和摘要
只需要 items.append(item["digest"]) 來(lái)保存 文章 摘要。其他字段如發(fā)布時(shí)間可獲取。
關(guān)于獲取閱讀數和點(diǎn)贊數的問(wèn)題,沒(méi)有辦法通過(guò)本題的方法搞定,因為網(wǎng)頁(yè)上的公眾號文章沒(méi)有數字閱讀量和點(diǎn)贊數。這需要電腦版??梢允褂米グぞ攉@取微信或手機版微信。
關(guān)于ip代理,統計頁(yè)數,多次保存,我在公眾號文章中介紹過(guò),有需要的可以看看 查看全部
querylist采集微信公眾號文章(如何實(shí)現每天爬取微信公眾號的推送文章(二))
Part 2文章:python爬蟲(chóng)如何抓取微信公眾號文章(二)
接下來(lái)是如何連接python爬蟲(chóng)實(shí)現每天爬取微信公眾號的推送文章
因為最近在法庭實(shí)習,需要一些公眾號資料,然后做成網(wǎng)頁(yè)展示,方便查看。之前寫(xiě)過(guò)一些爬蟲(chóng),但都是爬網(wǎng)站數據。這次覺(jué)得太容易了,但是遇到了很多麻煩,在這里分享給大家。
1、 使用爬蟲(chóng)爬取數據最基本也是最重要的就是找到目標網(wǎng)站的url地址,然后遍歷地址一個(gè)一個(gè)或者多個(gè)爬取線(xiàn)程。一般后續的爬取地址主要是通過(guò)兩種方式獲取,一種是根據頁(yè)面分頁(yè)計算url地址的規律,通常后跟參數page=num,另一種是過(guò)濾掉標簽取當前頁(yè)面的url作為后續的爬取地址。遺憾的是,這兩種方法都不能在微信公眾號中使用。原因是公眾號的文章地址之間沒(méi)有關(guān)聯(lián),不可能通過(guò)文章的地址找到所有的文章@。 >地址。
2、那我們如何獲取公眾號的歷史文章地址呢?一種方法是通過(guò)搜狗微信網(wǎng)站搜索目標公眾號,可以看到最近的文章,但只是最近的,無(wú)法獲取歷史記錄文章 @>。如果你想做一個(gè)每日爬蟲(chóng),你可以用這個(gè)方法每天爬取一篇文章。圖片是這樣的:
3、當然需要的結果還有很多,所以還是得想辦法把所有的歷史文本都弄出來(lái),廢話(huà)少說(shuō),切入正題:
首先要注冊一個(gè)微信公眾號(訂閱號),可以注冊個(gè)人,比較簡(jiǎn)單,步驟網(wǎng)上都有,這里就不介紹了。 (如果您之前有過(guò),則無(wú)需注冊)
注冊后,登錄微信公眾平臺,在首頁(yè)左欄的管理下,有一個(gè)素材管理,如圖:
點(diǎn)擊素材管理,然后選擇圖文信息,然后點(diǎn)擊右側新建圖文素材:
轉到新頁(yè)面并單擊頂部的超鏈接:
然后在彈出的窗口中選擇Find文章,輸入你要爬取的公眾號名稱(chēng),搜索:
然后點(diǎn)擊搜索到的公眾號,可以看到它的全部歷史記錄文章:
4、找到歷史記錄后文章,我們如何編寫(xiě)一個(gè)程序來(lái)獲取所有的URL地址? , 首先我們來(lái)分析一下瀏覽器在點(diǎn)擊公眾號名稱(chēng)時(shí)做了什么,調出查看頁(yè)面,點(diǎn)擊網(wǎng)絡(luò ),先清除所有數據,然后點(diǎn)擊目標公眾號,可以看到如下界面:
點(diǎn)擊字符串后,再點(diǎn)擊標題:
找到將軍。這里的Request Url就是我們的程序需要請求的地址格式。我們需要把它拼接起來(lái)。里面的參數在下面的Query String Parameters里面比較清楚:
這些參數的含義很容易理解。唯一需要說(shuō)明的是,fakeid 是公眾號的唯一標識。每個(gè)公眾號都不一樣。如果爬取其他公眾號,只需要修改這個(gè)參數即可。隨機可以省略。
另外一個(gè)重要的部分是Request Headers,里面收錄了cookie、User-Agent等重要信息,在下面的代碼中會(huì )用到:
5、 經(jīng)過(guò)以上分析,就可以開(kāi)始寫(xiě)代碼了。
需要的第一個(gè)參數:
#目標urlurl = "./cgi-bin/appmsg"#使用cookies,跳過(guò)登錄操作headers = {"Cookie": "ua_id=YF6RyP41YQa2QyQHAAAAAGXPy_he8M8KkNCUbRx0cVU=; pgv_pvi=232_5880d9800000; = 3231163757;門(mén)票= 5bd41c51e53cfce785e5c188f94240aac8fad8e3; TICKET_ID = gh_d5e73af61440;證書(shū)= bVSKoAHHVIldcRZp10_fd7p2aTEXrTi6; noticeLoginFlag = 1; remember_acct = mf1832192%; data_bizuin = 3231163757; data_ticket = XKgzAcTceBFDNN6cFXa4TZAVMlMlxhorD7A0r3vzCDkS ++ pgSpr55NFkQIN3N + / v; slave_sid = bU0yeTNOS2VxcEg5RktUQlZhd2xheVc5bjhoQTVhOHdhMnN2SlVIZGRtU3hvVXJpTWdWakVqcHowd3RuVF9HY19Udm1PbVpQMGVfcnhHVGJQQTVzckpQY042QlZZbnJzel9oam5SdjRFR0tGc0c1eExKQU9ybjgxVnZVZVBtSmVnc29ZcUJWVmNWWEFEaGtk; slave_user = gh_d5e73af61440; XID = 93074c5a87a2e98ddb9e527aa204d0c7; openid2ticket_obaWXwJGb9VV9FiHPMcNq7OZzlzY = lw6SBHGUDQf1lFHqOeShfg39SU7awJMxhDVb4AbVXJM =; mm_lang = zh_CN的 “” 用戶(hù)代理 “:” 的Mozilla / 5
0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36",}data = { "token": "1378111188", "lang ": "zh_CN", "f": "json", "ajax": "1", "action": "list_ex", "begin": "0", "count ": "5", "query": "", "fakeid": "MzU5MDUzMTk5Nw==", "type": "9",}
根據自己的cookie和token進(jìn)行修改,然后發(fā)送請求獲取響應,去掉每篇文章的title和url文章,代碼如下:
content_list = []for i in range(20): data["begin"] = i*5 time.sleep(3) # 使用get方法提交 content_json = requests.get ( url, headers=headers, params=data).json() # 返回一個(gè)json,里面收錄content_json["app_msg_list"]中item每頁(yè)的數據:#提取每頁(yè)的標題和對應文章@ > url items = [] items.append(item["title"]) items.append(item["link"]) content_list.append(items)
第一個(gè) for 循環(huán)是抓取的頁(yè)面數。首先需要看好公眾號文章列表中的總頁(yè)數。這個(gè)數字只能小于頁(yè)數。更改數據["begin"],表示從前幾條開(kāi)始,每次5條,注意爬取太多和太頻繁,否則會(huì )被ip和cookies攔截,嚴重的會(huì )被公眾號被屏蔽了。
然后按如下方式保存標題和網(wǎng)址:
name=["title","link"]test=pd.DataFrame(columns=name,data=content_list)test.to_csv("XXX.csv",mode="a",encoding="utf-8 ")print("保存成功")
完整的程序如下:
# -*- coding: utf-8 -*-import requestsimport timeimport csvimport pandas as pd# Target urlurl = "./cgi-bin/appmsg"# 使用cookies跳過(guò)登錄操作 headers = { “曲奇”:“ua_id = YF6RyP41YQa2QyQHAAAAAGXPy_he8M8KkNCUbRx0cVU =; pgv_pvi = 2045358080; pgv_si = s4132856832; UUID = 48da56b488e5c697909a13dfac91a819; bizuin = 3231163757;門(mén)票= 5bd41c51e53cfce785e5c188f94240aac8fad8e3; TICKET_ID = gh_d5e73af61440;證書(shū)= bVSKoAHHVIldcRZp10_fd7p2aTEXrTi6; noticeLoginFlag = 1; remember_acct = mf1832192%40smail.nju。 ; data_bizuin = 3231163757; data_ticket = XKgzAcTceBFDNN6cFXa4TZAVMlMlxhorD7A0r3vzCDkS ++ pgSpr55NFkQIN3N + / v; slave_sid = bU0yeTNOS2VxcEg5RktUQlZhd2xheVc5bjhoQTVhOHdhMnN2SlVIZGRtU3hvVXJpTWdWakVqcHowd3RuVF9HY19Udm1PbVpQMGVfcnhHVGJQQTVzckpQY042QlZZbnJzel9oam5SdjRFR0tGc0c1eExKQU9ybjgxVnZVZVBtSmVnc29ZcUJWVmNWWEFEaGtk; slave_user = gh_d5e73af61440; XID = 93074c5a87a2e98ddb9e527aa204d0c7; openid2ticket_obaWXwJGb9VV9FiHPMcNq7OZzlzY = lw6SBHGUDQf1lFHqOeShfg39S U7awJMxhDVb4AbVXJM =; mm_lang = zh_CN "," User-Agent ":" Mozilla / 5 .
0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36",}data = { "token": "1378111188", "lang ": "zh_CN", "f": "json", "ajax": "1", "action": "list_ex", "begin": "0", "count ": "5", "query": "", "fakeid": "MzU5MDUzMTk5Nw==", "type": "9",}content_list = []for i in range(20): data[ "begin"] = i*5 time. sleep(3) # 使用get方法提交 content_json = requests.get(url, headers=headers, params=data).json() # 返回一個(gè)json,里面是item中的每個(gè)頁(yè)面的數據content_json["app_msg_list"]: # 提取每個(gè)頁(yè)面的標題文章和對應的url items = [] items.
append(item["title"]) 項。追加(項目[“鏈接”])內容列表。 append(items) print(i)name=["title","link"]test=pd.數據幀(列=名稱(chēng),數據=內容列表)測試。 to_csv("xingzhengzhifa.csv",mode="a",encoding="utf-8")print("保存成功")
最后保存的文件如圖:
獲取每個(gè)文章的url后,就可以遍歷爬取每個(gè)文章的內容。爬取文章內容的部分將在下面的博客中介紹。
補充內容:
關(guān)于如何從小伙伴那里獲取封面圖片和摘要的問(wèn)題,查看瀏覽器可以看到返回的json數據中收錄了很多信息,包括封面圖片和摘要
只需要 items.append(item["digest"]) 來(lái)保存 文章 摘要。其他字段如發(fā)布時(shí)間可獲取。
關(guān)于獲取閱讀數和點(diǎn)贊數的問(wèn)題,沒(méi)有辦法通過(guò)本題的方法搞定,因為網(wǎng)頁(yè)上的公眾號文章沒(méi)有數字閱讀量和點(diǎn)贊數。這需要電腦版??梢允褂米グぞ攉@取微信或手機版微信。
關(guān)于ip代理,統計頁(yè)數,多次保存,我在公眾號文章中介紹過(guò),有需要的可以看看
querylist采集微信公眾號文章(微信公眾號怎么收集報名者名單和信息?怎么做?)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 208 次瀏覽 ? 2021-12-29 20:18
現在大家都習慣了每天通過(guò)微信互相交流。微信公眾號的出現,讓之前的一些工作變得更加輕松。在我們組織活動(dòng)之前,我們會(huì )先拉一個(gè)群組,然后手動(dòng)將回復信息一一整理出來(lái)。需要收錢(qián)的,只能一一整理。微信公眾平臺怎么發(fā)布活動(dòng),采集
報名者名單和信息,或者微信公眾號怎么采集
注冊粉絲的信息,也就是填表然后提交給我。
針對以上問(wèn)題,我們可以通過(guò)公眾號提交微信報名表,我們的商家也可以采集
用戶(hù)信息,通過(guò)微信營(yíng)銷(xiāo)系統的注冊活動(dòng),我們可以自定義注冊?xún)热?。?jiǎn)單實(shí)現任意內容的采集,直接將采集到的注冊信息直接扔進(jìn)群或嵌入公眾號。需參加活動(dòng)者自行提交信息,我們可直接在后臺查看報名資料。跟大家分享一下公眾號是如何采集
注冊信息的。步。
用電腦登錄第三方,登錄后掃碼或api綁定公眾號。一般選擇掃碼,方便快捷。完成后點(diǎn)擊下方管理頁(yè)面進(jìn)入后臺,如下圖
在微交互中,我們可以使用通用表單來(lái)實(shí)現,進(jìn)入通用表單編輯頁(yè)面,包括主辦方信息等。如果有支付費用,請選擇是或否,填寫(xiě)支付項目名稱(chēng)和金額,并提醒手機 配置和郵箱配置完成后,可以提醒提交信息的用戶(hù)及時(shí)處理注冊信息,編輯完所有內容后點(diǎn)擊保存
下一步是設置微信注冊以采集
信息。在添加組件中,我們可以根據自己的需要添加我們需要的組件,比如姓名、性別、年齡、聯(lián)系方式等,也有很多樣式供我們選擇,比如單選、多選、下拉-down 菜單等,以及組件的文字說(shuō)明,比如一些注意事項和填充規則,并檢查是否需要等。
在添加組件中,不僅可以自定義采集信息的內容,還可以進(jìn)行拖動(dòng)、移動(dòng)、刪除、添加等操作。在基本設置中,您還可以在微信采集
登記信息表中設置背景、圖標、按鈕、文字顏色和文字顏色。設置樣式等地方,最后保存后回復關(guān)鍵詞或者自定義菜單就可以得到微信注冊頁(yè)面
返回制作后臺點(diǎn)擊數據管理,可以看到已經(jīng)提交了采集
到的粉絲信息,然后點(diǎn)擊“一鍵導出excel”導出注冊信息。萬(wàn)能表格登記系統不僅可以制作各種表格,還可以作為問(wèn)卷使用。商品發(fā)布、注冊匯總等
如何使用微信采集
信息,表單功能強大,可用于行業(yè):活動(dòng)報名/學(xué)校報名/會(huì )議培訓/活動(dòng)報名等需要采集
信息的應用。制作報名表、報名表、預約表、邀請函、反饋表等電子表格,通過(guò)各大社交平臺發(fā)送表格鏈接,客戶(hù)在微信公眾號填寫(xiě)信息
服務(wù)優(yōu)勢
上手容易,操作簡(jiǎn)單,組合靈活;組件眾多,功能全面;
提供高級功能,讓您的表單采集
更準確的信息
互動(dòng)功能眾多,更具吸引力,同樣的努力可以事半功倍
應用場(chǎng)景
報名表、商品銷(xiāo)售、信息采集表等各種數據報表。
?、俣绦膨炞C:確保用戶(hù)填寫(xiě)的手機號碼真實(shí)有效,避免用戶(hù)提交無(wú)用信息。
?、诒韱雾棡楸靥铐棧汗催x必填項將要求用戶(hù)填寫(xiě)當前表單項,否則無(wú)法提交表單。使用這個(gè)功能,可以讓每個(gè)表格都可以采集
到必要的信息。
?、蹐竺藬迪拗疲嚎刂铺畋硪幠?,設置最多填表人數,可用于活動(dòng)報名,防止報名人數過(guò)多。
?、芏绦盘嵝眩寒敱韱翁顚?xiě)項中收錄
手機類(lèi)型時(shí),勾選短信提醒,用戶(hù)提交表單后即可發(fā)送指定短信給用戶(hù) 查看全部
querylist采集微信公眾號文章(微信公眾號怎么收集報名者名單和信息?怎么做?)
現在大家都習慣了每天通過(guò)微信互相交流。微信公眾號的出現,讓之前的一些工作變得更加輕松。在我們組織活動(dòng)之前,我們會(huì )先拉一個(gè)群組,然后手動(dòng)將回復信息一一整理出來(lái)。需要收錢(qián)的,只能一一整理。微信公眾平臺怎么發(fā)布活動(dòng),采集
報名者名單和信息,或者微信公眾號怎么采集
注冊粉絲的信息,也就是填表然后提交給我。

針對以上問(wèn)題,我們可以通過(guò)公眾號提交微信報名表,我們的商家也可以采集
用戶(hù)信息,通過(guò)微信營(yíng)銷(xiāo)系統的注冊活動(dòng),我們可以自定義注冊?xún)热?。?jiǎn)單實(shí)現任意內容的采集,直接將采集到的注冊信息直接扔進(jìn)群或嵌入公眾號。需參加活動(dòng)者自行提交信息,我們可直接在后臺查看報名資料。跟大家分享一下公眾號是如何采集
注冊信息的。步。
用電腦登錄第三方,登錄后掃碼或api綁定公眾號。一般選擇掃碼,方便快捷。完成后點(diǎn)擊下方管理頁(yè)面進(jìn)入后臺,如下圖

在微交互中,我們可以使用通用表單來(lái)實(shí)現,進(jìn)入通用表單編輯頁(yè)面,包括主辦方信息等。如果有支付費用,請選擇是或否,填寫(xiě)支付項目名稱(chēng)和金額,并提醒手機 配置和郵箱配置完成后,可以提醒提交信息的用戶(hù)及時(shí)處理注冊信息,編輯完所有內容后點(diǎn)擊保存

下一步是設置微信注冊以采集
信息。在添加組件中,我們可以根據自己的需要添加我們需要的組件,比如姓名、性別、年齡、聯(lián)系方式等,也有很多樣式供我們選擇,比如單選、多選、下拉-down 菜單等,以及組件的文字說(shuō)明,比如一些注意事項和填充規則,并檢查是否需要等。

在添加組件中,不僅可以自定義采集信息的內容,還可以進(jìn)行拖動(dòng)、移動(dòng)、刪除、添加等操作。在基本設置中,您還可以在微信采集
登記信息表中設置背景、圖標、按鈕、文字顏色和文字顏色。設置樣式等地方,最后保存后回復關(guān)鍵詞或者自定義菜單就可以得到微信注冊頁(yè)面

返回制作后臺點(diǎn)擊數據管理,可以看到已經(jīng)提交了采集
到的粉絲信息,然后點(diǎn)擊“一鍵導出excel”導出注冊信息。萬(wàn)能表格登記系統不僅可以制作各種表格,還可以作為問(wèn)卷使用。商品發(fā)布、注冊匯總等

如何使用微信采集
信息,表單功能強大,可用于行業(yè):活動(dòng)報名/學(xué)校報名/會(huì )議培訓/活動(dòng)報名等需要采集
信息的應用。制作報名表、報名表、預約表、邀請函、反饋表等電子表格,通過(guò)各大社交平臺發(fā)送表格鏈接,客戶(hù)在微信公眾號填寫(xiě)信息
服務(wù)優(yōu)勢
上手容易,操作簡(jiǎn)單,組合靈活;組件眾多,功能全面;
提供高級功能,讓您的表單采集
更準確的信息
互動(dòng)功能眾多,更具吸引力,同樣的努力可以事半功倍
應用場(chǎng)景
報名表、商品銷(xiāo)售、信息采集表等各種數據報表。
?、俣绦膨炞C:確保用戶(hù)填寫(xiě)的手機號碼真實(shí)有效,避免用戶(hù)提交無(wú)用信息。
?、诒韱雾棡楸靥铐棧汗催x必填項將要求用戶(hù)填寫(xiě)當前表單項,否則無(wú)法提交表單。使用這個(gè)功能,可以讓每個(gè)表格都可以采集
到必要的信息。
?、蹐竺藬迪拗疲嚎刂铺畋硪幠?,設置最多填表人數,可用于活動(dòng)報名,防止報名人數過(guò)多。
?、芏绦盘嵝眩寒敱韱翁顚?xiě)項中收錄
手機類(lèi)型時(shí),勾選短信提醒,用戶(hù)提交表單后即可發(fā)送指定短信給用戶(hù)
querylist采集微信公眾號文章( 微信公眾號一下如何接入微信號插件(圖))
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 121 次瀏覽 ? 2021-12-28 13:09
微信公眾號一下如何接入微信號插件(圖))
WordPress訪(fǎng)問(wèn)微信公眾號網(wǎng)站文章同步微信公眾號
移動(dòng)互聯(lián)網(wǎng)時(shí)代,微信成為了一個(gè)使用率特別高的APP。在之前的教程中,我們介紹了如何制作手機網(wǎng)站。在學(xué)習做網(wǎng)站論壇的網(wǎng)站建設培訓課程中,還有專(zhuān)門(mén)的課程講解如何制作手機網(wǎng)站。
今天我們要介紹的是微信公眾號,說(shuō)說(shuō)wordpress在搭建自己的網(wǎng)站時(shí)是如何訪(fǎng)問(wèn)微信公眾號的。通過(guò)將我們自己的網(wǎng)站連接到微信公眾號,只要我們的網(wǎng)站有更新的文章,都可以同時(shí)更新到我們的微信公眾號,非常完美。
在網(wǎng)站上設置wordpress訪(fǎng)問(wèn)微信公眾號時(shí),需要用到wordpress插件——“微信機器人”插件。下載微信機器人插件,解壓,上傳到插件目錄。請不要更改插件的文件夾名稱(chēng),否則無(wú)法使用。將微信公眾號后臺的網(wǎng)址設置為:
您的網(wǎng)址/?weixin
, Token 設置同上。
最后,進(jìn)入WordPress后臺>微信機器人設置和自定義回復。微信設置
很多人的微信公眾號(訂閱號)都是個(gè)人公眾號。微信的很多功能都被限制了。設置過(guò)程中會(huì )提示“由于開(kāi)發(fā)者通過(guò)界面修改了菜單配置,當前菜單配置已失效禁用”。
這是啟用開(kāi)發(fā)人員服務(wù)器配置和自定義菜單的小技巧。不要在微信機器人中設置,而是在公眾號中設置,方法如下:
溫馨的提示
安裝“微信機器人”插件,需要先安裝WPJAM基礎插件。這個(gè)插件也很不錯??梢?xún)?yōu)化很多wordpress的功能。安裝它沒(méi)有什么壞處。 查看全部
querylist采集微信公眾號文章(
微信公眾號一下如何接入微信號插件(圖))
WordPress訪(fǎng)問(wèn)微信公眾號網(wǎng)站文章同步微信公眾號
移動(dòng)互聯(lián)網(wǎng)時(shí)代,微信成為了一個(gè)使用率特別高的APP。在之前的教程中,我們介紹了如何制作手機網(wǎng)站。在學(xué)習做網(wǎng)站論壇的網(wǎng)站建設培訓課程中,還有專(zhuān)門(mén)的課程講解如何制作手機網(wǎng)站。
今天我們要介紹的是微信公眾號,說(shuō)說(shuō)wordpress在搭建自己的網(wǎng)站時(shí)是如何訪(fǎng)問(wèn)微信公眾號的。通過(guò)將我們自己的網(wǎng)站連接到微信公眾號,只要我們的網(wǎng)站有更新的文章,都可以同時(shí)更新到我們的微信公眾號,非常完美。

在網(wǎng)站上設置wordpress訪(fǎng)問(wèn)微信公眾號時(shí),需要用到wordpress插件——“微信機器人”插件。下載微信機器人插件,解壓,上傳到插件目錄。請不要更改插件的文件夾名稱(chēng),否則無(wú)法使用。將微信公眾號后臺的網(wǎng)址設置為:
您的網(wǎng)址/?weixin
, Token 設置同上。
最后,進(jìn)入WordPress后臺>微信機器人設置和自定義回復。微信設置
很多人的微信公眾號(訂閱號)都是個(gè)人公眾號。微信的很多功能都被限制了。設置過(guò)程中會(huì )提示“由于開(kāi)發(fā)者通過(guò)界面修改了菜單配置,當前菜單配置已失效禁用”。
這是啟用開(kāi)發(fā)人員服務(wù)器配置和自定義菜單的小技巧。不要在微信機器人中設置,而是在公眾號中設置,方法如下:

溫馨的提示
安裝“微信機器人”插件,需要先安裝WPJAM基礎插件。這個(gè)插件也很不錯??梢?xún)?yōu)化很多wordpress的功能。安裝它沒(méi)有什么壞處。
querylist采集微信公眾號文章(借助搜索微信搜索引擎進(jìn)行抓取過(guò)程(圖)文件保存 )
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 152 次瀏覽 ? 2021-12-27 07:06
)
借助搜索微信搜索引擎抓取
爬行過(guò)程
1、首先在搜狗的微信搜索頁(yè)面上測試一下,這樣我們的思路會(huì )更清晰
在搜索引擎上使用微信公眾號英文名進(jìn)行“搜索公眾號”操作(因為公眾號英文名是唯一的公眾號,中文名可能會(huì )重復。同時(shí)時(shí)候,公眾號名稱(chēng)一定要完全正確,否則可能會(huì )搜到很多東西,這樣我們就可以減少數據過(guò)濾的工作,
只需找到這個(gè)唯一英文名稱(chēng)對應的數據),向\';query=%s&ie=utf8&_sug_=n&_sug_type_= \'% \'Python\'發(fā)送請求,從頁(yè)面中解析出搜索結果公眾號對應的主頁(yè)跳轉鏈接。
爬取過(guò)程中使用的是pyquery,也可以使用xpath
文件保存:
完整代碼如下:
# coding: utf-8
# 這三行代碼是防止在python2上面編碼錯誤的,在python3上面不要要這樣設置
import sys
reload(sys)
sys.setdefaultencoding(\'utf-8\')
from urllib import quote
from pyquery import PyQuery as pq
from selenium import webdriver
from pyExcelerator import * # 導入excel相關(guān)包
import requests
import time
import re
import json
import os
class wx_spider:
def __init__(self,Wechat_PublicID):
\'\'\'
構造函數,借助搜狗微信搜索引擎,根據微信公眾號獲取微信公眾號對應的文章的,發(fā)布時(shí)間、文章標題, 文章鏈接, 文章簡(jiǎn)介等信息
:param Wechat_PublicID: 微信公眾號
\'\'\'
self.Wechat_PublicID = Wechat_PublicID
#搜狗引擎鏈接url
self.sogou_search_url = \'http://weixin.sogou.com/weixin?type=1&query=%s&ie=utf8&s_from=input&_sug_=n&_sug_type_=\' % quote(Wechat_PublicID)
# 爬蟲(chóng)偽裝頭部設置
self.headers = {\'User-Agent\': \'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0\'}
# 超時(shí)時(shí)長(cháng)
self.timeout = 5
# 爬蟲(chóng)模擬在一個(gè)request.session中完成
self.session = requests.Session()
# excel 第一行數據
self.excel_headData = [u\'發(fā)布時(shí)間\', u\'文章標題\', u\'文章鏈接\', u\'文章簡(jiǎn)介\']
# 定義excel操作句柄
self.excle_Workbook = Workbook()
def log(self, msg):
\'\'\'
日志函數
:param msg: 日志信息
:return:
\'\'\'
print u\'%s: %s\' % (time.strftime(\'%Y-%m-%d %H-%M-%S\'), msg)
def run(self):
#Step 0 : 創(chuàng )建公眾號命名的文件夾
if not os.path.exists(self.Wechat_PublicID):
os.makedirs(self.Wechat_PublicID)
# 第一步 :GET請求到搜狗微信引擎,以微信公眾號英文名稱(chēng)作為查詢(xún)關(guān)鍵字
self.log(u\'開(kāi)始獲取,微信公眾號英文名為:%s\' % self.Wechat_PublicID)
self.log(u\'開(kāi)始調用sougou搜索引擎\')
self.log(u\'搜索地址為:%s\' % self.sogou_search_url)
sougou_search_html = self.session.get(self.sogou_search_url, headers=self.headers, timeout=self.timeout).content
# 第二步:從搜索結果頁(yè)中解析出公眾號主頁(yè)鏈接
doc = pq(sougou_search_html)
# 通過(guò)pyquery的方式處理網(wǎng)頁(yè)內容,類(lèi)似用beautifulsoup,但是pyquery和jQuery的方法類(lèi)似,找到公眾號主頁(yè)地址
wx_url = doc(\'div[class=txt-box]\')(\'p[class=tit]\')(\'a\').attr(\'href\')
self.log(u\'獲取wx_url成功,%s\' % wx_url)
# 第三步:Selenium+PhantomJs獲取js異步加載渲染后的html
self.log(u\'開(kāi)始調用selenium渲染html\')
browser = webdriver.PhantomJS()
browser.get(wx_url)
time.sleep(3)
# 執行js得到整個(gè)頁(yè)面內容
selenium_html = browser.execute_script("return document.documentElement.outerHTML")
browser.close()
# 第四步: 檢測目標網(wǎng)站是否進(jìn)行了封鎖
\' 有時(shí)候對方會(huì )封鎖ip,這里做一下判斷,檢測html中是否包含id=verify_change的標簽,有的話(huà),代表被重定向了,提醒過(guò)一陣子重試 \'
if pq(selenium_html)(\'#verify_change\').text() != \'\':
self.log(u\'爬蟲(chóng)被目標網(wǎng)站封鎖,請稍后再試\')
else:
# 第五步: 使用PyQuery,從第三步獲取的html中解析出公眾號文章列表的數據
self.log(u\'調用selenium渲染html完成,開(kāi)始解析公眾號文章\')
doc = pq(selenium_html)
articles_list = doc(\'div[class="weui_media_box appmsg"]\')
articlesLength = len(articles_list)
self.log(u\'抓取到微信文章%d篇\' % articlesLength)
# Step 6: 把微信文章數據封裝成字典的list
self.log(u\'開(kāi)始整合微信文章數據為字典\')
# 遍歷找到的文章,解析里面的內容
if articles_list:
index = 0
# 以當前時(shí)間為名字建表
excel_sheet_name = time.strftime(\'%Y-%m-%d\')
excel_content = self.excle_Workbook.add_sheet(excel_sheet_name)
colindex = 0
columnsLength = len(self.excel_headData)
for data in self.excel_headData:
excel_content.write(0, colindex, data)
colindex += 1
for article in articles_list.items():
self.log(\' \' )
self.log(u\'開(kāi)始整合(%d/%d)\' % (index, articlesLength))
index += 1
# 處理單個(gè)文章
# 獲取標題
title = article(\'h4[class="weui_media_title"]\').text().strip()
self.log(u\'標題是: %s\' % title)
# 獲取標題對應的地址
url = \'http://mp.weixin.qq.com\' + article(\'h4[class="weui_media_title"]\').attr(\'hrefs\')
self.log(u\'地址為: %s\' % url)
# 獲取概要內容
# summary = article(\'.weui_media_desc\').text()
summary = article(\'p[class="weui_media_desc"]\').text()
self.log(u\'文章簡(jiǎn)述: %s\' % summary)
# 獲取文章發(fā)表時(shí)間
# date = article(\'.weui_media_extra_info\').text().strip()
date = article(\'p[class="weui_media_extra_info"]\').text().strip()
self.log(u\'發(fā)表時(shí)間為: %s\' % date)
# # 獲取封面圖片
# pic = article(\'.weui_media_hd\').attr(\'style\')
#
# p = re.compile(r\'background-image:url(.+)\')
# rs = p.findall(pic)
# if len(rs) > 0:
# p = rs[0].replace(\'(\', \'\')
# p = p.replace(\')\', \'\')
# self.log(u\'封面圖片是:%s \' % p)
tempContent = [date, title, url, summary]
for j in range(columnsLength):
excel_content.write(index, j, tempContent[j])
self.excle_Workbook.save(self.Wechat_PublicID + \'/\' + self.Wechat_PublicID + \'.xlsx\')
self.log(u\'保存完成,程序結束\')
if __name__ == \'__main__\':
wx_spider("python6359").run() 查看全部
querylist采集微信公眾號文章(借助搜索微信搜索引擎進(jìn)行抓取過(guò)程(圖)文件保存
)
借助搜索微信搜索引擎抓取
爬行過(guò)程
1、首先在搜狗的微信搜索頁(yè)面上測試一下,這樣我們的思路會(huì )更清晰
在搜索引擎上使用微信公眾號英文名進(jìn)行“搜索公眾號”操作(因為公眾號英文名是唯一的公眾號,中文名可能會(huì )重復。同時(shí)時(shí)候,公眾號名稱(chēng)一定要完全正確,否則可能會(huì )搜到很多東西,這樣我們就可以減少數據過(guò)濾的工作,
只需找到這個(gè)唯一英文名稱(chēng)對應的數據),向\';query=%s&ie=utf8&_sug_=n&_sug_type_= \'% \'Python\'發(fā)送請求,從頁(yè)面中解析出搜索結果公眾號對應的主頁(yè)跳轉鏈接。
爬取過(guò)程中使用的是pyquery,也可以使用xpath
文件保存:
完整代碼如下:
# coding: utf-8
# 這三行代碼是防止在python2上面編碼錯誤的,在python3上面不要要這樣設置
import sys
reload(sys)
sys.setdefaultencoding(\'utf-8\')
from urllib import quote
from pyquery import PyQuery as pq
from selenium import webdriver
from pyExcelerator import * # 導入excel相關(guān)包
import requests
import time
import re
import json
import os
class wx_spider:
def __init__(self,Wechat_PublicID):
\'\'\'
構造函數,借助搜狗微信搜索引擎,根據微信公眾號獲取微信公眾號對應的文章的,發(fā)布時(shí)間、文章標題, 文章鏈接, 文章簡(jiǎn)介等信息
:param Wechat_PublicID: 微信公眾號
\'\'\'
self.Wechat_PublicID = Wechat_PublicID
#搜狗引擎鏈接url
self.sogou_search_url = \'http://weixin.sogou.com/weixin?type=1&query=%s&ie=utf8&s_from=input&_sug_=n&_sug_type_=\' % quote(Wechat_PublicID)
# 爬蟲(chóng)偽裝頭部設置
self.headers = {\'User-Agent\': \'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0\'}
# 超時(shí)時(shí)長(cháng)
self.timeout = 5
# 爬蟲(chóng)模擬在一個(gè)request.session中完成
self.session = requests.Session()
# excel 第一行數據
self.excel_headData = [u\'發(fā)布時(shí)間\', u\'文章標題\', u\'文章鏈接\', u\'文章簡(jiǎn)介\']
# 定義excel操作句柄
self.excle_Workbook = Workbook()
def log(self, msg):
\'\'\'
日志函數
:param msg: 日志信息
:return:
\'\'\'
print u\'%s: %s\' % (time.strftime(\'%Y-%m-%d %H-%M-%S\'), msg)
def run(self):
#Step 0 : 創(chuàng )建公眾號命名的文件夾
if not os.path.exists(self.Wechat_PublicID):
os.makedirs(self.Wechat_PublicID)
# 第一步 :GET請求到搜狗微信引擎,以微信公眾號英文名稱(chēng)作為查詢(xún)關(guān)鍵字
self.log(u\'開(kāi)始獲取,微信公眾號英文名為:%s\' % self.Wechat_PublicID)
self.log(u\'開(kāi)始調用sougou搜索引擎\')
self.log(u\'搜索地址為:%s\' % self.sogou_search_url)
sougou_search_html = self.session.get(self.sogou_search_url, headers=self.headers, timeout=self.timeout).content
# 第二步:從搜索結果頁(yè)中解析出公眾號主頁(yè)鏈接
doc = pq(sougou_search_html)
# 通過(guò)pyquery的方式處理網(wǎng)頁(yè)內容,類(lèi)似用beautifulsoup,但是pyquery和jQuery的方法類(lèi)似,找到公眾號主頁(yè)地址
wx_url = doc(\'div[class=txt-box]\')(\'p[class=tit]\')(\'a\').attr(\'href\')
self.log(u\'獲取wx_url成功,%s\' % wx_url)
# 第三步:Selenium+PhantomJs獲取js異步加載渲染后的html
self.log(u\'開(kāi)始調用selenium渲染html\')
browser = webdriver.PhantomJS()
browser.get(wx_url)
time.sleep(3)
# 執行js得到整個(gè)頁(yè)面內容
selenium_html = browser.execute_script("return document.documentElement.outerHTML")
browser.close()
# 第四步: 檢測目標網(wǎng)站是否進(jìn)行了封鎖
\' 有時(shí)候對方會(huì )封鎖ip,這里做一下判斷,檢測html中是否包含id=verify_change的標簽,有的話(huà),代表被重定向了,提醒過(guò)一陣子重試 \'
if pq(selenium_html)(\'#verify_change\').text() != \'\':
self.log(u\'爬蟲(chóng)被目標網(wǎng)站封鎖,請稍后再試\')
else:
# 第五步: 使用PyQuery,從第三步獲取的html中解析出公眾號文章列表的數據
self.log(u\'調用selenium渲染html完成,開(kāi)始解析公眾號文章\')
doc = pq(selenium_html)
articles_list = doc(\'div[class="weui_media_box appmsg"]\')
articlesLength = len(articles_list)
self.log(u\'抓取到微信文章%d篇\' % articlesLength)
# Step 6: 把微信文章數據封裝成字典的list
self.log(u\'開(kāi)始整合微信文章數據為字典\')
# 遍歷找到的文章,解析里面的內容
if articles_list:
index = 0
# 以當前時(shí)間為名字建表
excel_sheet_name = time.strftime(\'%Y-%m-%d\')
excel_content = self.excle_Workbook.add_sheet(excel_sheet_name)
colindex = 0
columnsLength = len(self.excel_headData)
for data in self.excel_headData:
excel_content.write(0, colindex, data)
colindex += 1
for article in articles_list.items():
self.log(\' \' )
self.log(u\'開(kāi)始整合(%d/%d)\' % (index, articlesLength))
index += 1
# 處理單個(gè)文章
# 獲取標題
title = article(\'h4[class="weui_media_title"]\').text().strip()
self.log(u\'標題是: %s\' % title)
# 獲取標題對應的地址
url = \'http://mp.weixin.qq.com\' + article(\'h4[class="weui_media_title"]\').attr(\'hrefs\')
self.log(u\'地址為: %s\' % url)
# 獲取概要內容
# summary = article(\'.weui_media_desc\').text()
summary = article(\'p[class="weui_media_desc"]\').text()
self.log(u\'文章簡(jiǎn)述: %s\' % summary)
# 獲取文章發(fā)表時(shí)間
# date = article(\'.weui_media_extra_info\').text().strip()
date = article(\'p[class="weui_media_extra_info"]\').text().strip()
self.log(u\'發(fā)表時(shí)間為: %s\' % date)
# # 獲取封面圖片
# pic = article(\'.weui_media_hd\').attr(\'style\')
#
# p = re.compile(r\'background-image:url(.+)\')
# rs = p.findall(pic)
# if len(rs) > 0:
# p = rs[0].replace(\'(\', \'\')
# p = p.replace(\')\', \'\')
# self.log(u\'封面圖片是:%s \' % p)
tempContent = [date, title, url, summary]
for j in range(columnsLength):
excel_content.write(index, j, tempContent[j])
self.excle_Workbook.save(self.Wechat_PublicID + \'/\' + self.Wechat_PublicID + \'.xlsx\')
self.log(u\'保存完成,程序結束\')
if __name__ == \'__main__\':
wx_spider("python6359").run()
querylist采集微信公眾號文章(搜狗微信搜索中的微信文章獲取文章的瀏覽量和點(diǎn)贊量)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 159 次瀏覽 ? 2021-12-25 16:09
在線(xiàn)工具:微信文章轉PDF
微信公眾平臺上有很多公眾號,里面有各種各樣的文章,很多很亂。但是,在這些文章中,肯定會(huì )有我認為的精品文章。
所以如果我能寫(xiě)一個(gè)程序來(lái)獲取我喜歡的微信公眾號上的文章,獲取文章的瀏覽量和點(diǎn)贊數,然后進(jìn)行簡(jiǎn)單的數據分析,那么最終的文章列表肯定會(huì )是成為更好的文章。
這里需要注意的是,通過(guò)寫(xiě)爬蟲(chóng)在搜狗微信搜索中獲取微信文章,是無(wú)法獲取到瀏覽量和點(diǎn)贊這兩個(gè)關(guān)鍵數據的(我是編程入門(mén)級的)。所以我采取了不同的方法,通過(guò)清博指數網(wǎng)站,來(lái)獲取我想要的數據。
注:目前我們已經(jīng)找到了獲取搜狗微信文章瀏覽量和點(diǎn)贊數的方法。2017.02.03
事實(shí)上,清博指數網(wǎng)站上的數據是非常完整的??梢圆榭次⑿殴娞柫斜?,可以查看每日、每周、每月的熱門(mén)帖子。但正如我上面所說(shuō),內容相當混亂。閱讀量大的文章可能是一些家長(cháng)級人才會(huì )喜歡的文章。
當然,我也可以在這個(gè)網(wǎng)站上搜索特定的微信公眾號,然后閱讀它的歷史文章。青博索引也很詳細,文章可以按照閱讀數、點(diǎn)贊數等排序。但是,我需要的可能是一個(gè)很簡(jiǎn)單的點(diǎn)贊數除以閱讀數的指標,所以需要通過(guò)爬蟲(chóng)爬取以上數據進(jìn)行簡(jiǎn)單的分析。順便說(shuō)一句,你可以練習你的手,感覺(jué)很無(wú)聊。
啟動(dòng)程序
以建起財經(jīng)微信公眾號為例,我需要先打開(kāi)它的文章界面,下面是它的url:
http://www.gsdata.cn/query/art ... e%3D1
然后我通過(guò)分析發(fā)現它總共有25頁(yè)文章,也就是文章最后一頁(yè)的url如下,注意只有last參數不同:
http://www.gsdata.cn/query/art ... %3D25
所以你可以編寫(xiě)一個(gè)函數并調用它 25 次。
BeautifulSoup 爬取你在網(wǎng)絡(luò )上需要的數據
忘了說(shuō)了,我寫(xiě)程序用的語(yǔ)言是Python,爬蟲(chóng)入口很簡(jiǎn)單。那么BeautifulSoup就是一個(gè)網(wǎng)頁(yè)分析插件,非常方便的獲取文章中的HTML數據。
下一步是分析網(wǎng)頁(yè)結構:
我用紅框框了兩篇文章,它們在網(wǎng)頁(yè)上的結構代碼是一樣的。然后我可以通過(guò)查看元素看到網(wǎng)頁(yè)的相應代碼,然后我可以編寫(xiě)抓取規則。下面我直接寫(xiě)了一個(gè)函數:
# 獲取網(wǎng)頁(yè)中的數據
def get_webdata(url):
headers = {
'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'
}
r = requests.get(url,headers=headers)
c = r.content
b = BeautifulSoup(c)
data_list = b.find('ul',{'class':'article-ul'})
data_li = data_list.findAll('li')
for i in data_li:
# 替換標題中的英文雙引號,防止插入數據庫時(shí)出現錯誤
title = i.find('h4').find('a').get_text().replace('"','\'\'')
link = i.find('h4').find('a').attrs['href']
source = i.find('span',{'class':'blue'}).get_text()
time = i.find('span',{'class':'blue'}).parent.next_sibling.next_sibling.get_text().replace('發(fā)布時(shí)間:'.decode('utf-8'),'')
readnum = int(i.find('i',{'class':'fa-book'}).next_sibling)
praisenum = int(i.find('i',{'class':'fa-thumbs-o-up'}).next_sibling)
insert_content(title,readnum,praisenum,time,link,source)
這個(gè)函數包括先使用requests獲取網(wǎng)頁(yè)的內容,然后傳遞給BeautifulSoup分析提取我需要的數據,然后通過(guò)insert_content函數在數據庫中,這次就不涉及數據庫的知識了,所有的代碼都會(huì )在下面給出,也算是怕以后忘記了。
我個(gè)人認為,其實(shí)BeautifulSoup的知識點(diǎn)只需要掌握我在上面代碼中用到的幾個(gè)常用語(yǔ)句,比如find、findAll、get_text()、attrs['src']等等。
循環(huán)獲取并寫(xiě)入數據庫
你還記得第一個(gè)網(wǎng)址嗎?總共需要爬取25個(gè)頁(yè)面。這25個(gè)頁(yè)面的url其實(shí)和最后一個(gè)參數是不一樣的,所以你可以給出一個(gè)基本的url,使用for函數直接生成25個(gè)url。而已:
# 生成需要爬取的網(wǎng)頁(yè)鏈接且進(jìn)行爬取
def get_urls_webdatas(basic_url,range_num):
for i in range(1,range_num+1):
url = basic_url + str(i)
print url
print ''
get_webdata(url)
time.sleep(round(random.random(),1))
basic_url = 'http://www.gsdata.cn/query/article?q=jane7ducai&post_time=0&sort=-3&date=&search_field=4&page='
get_urls_webdatas(basic_url,25)
和上面的代碼一樣,函數get_urls_webdataas傳入了兩個(gè)參數,分別是基本url和需要的頁(yè)數。你可以看到我在代碼的最后一行調用了這個(gè)函數。
這個(gè)函數還調用了我寫(xiě)的函數get_webdata來(lái)抓取上面的頁(yè)面,這樣25頁(yè)的文章數據就會(huì )一次性寫(xiě)入數據庫。
那么請注意這個(gè)小技巧:
time.sleep(round(random.random(),1))
每次使用程序爬取一個(gè)網(wǎng)頁(yè),這個(gè)語(yǔ)句都會(huì )在1s內隨機生成一段時(shí)間,然后休息這么一小段時(shí)間,然后繼續爬下一個(gè)頁(yè)面,可以防止被ban。
獲取最終數據
先把程序的剩余代碼給我:
#coding:utf-8
import requests,MySQLdb,random,time
from bs4 import BeautifulSoup
def get_conn():
conn = MySQLdb.connect('localhost','root','0000','weixin',charset='utf8')
return conn
def insert_content(title,readnum,praisenum,time,link,source):
conn = get_conn()
cur = conn.cursor()
print title,readnum
sql = 'insert into weixin.gsdata(title,readnum,praisenum,time,link,source) values ("%s","%s","%s","%s","%s","%s")' % (title,readnum,praisenum,time,link,source)
cur.execute(sql)
conn.commit()
cur.close()
conn.close()
在導入的開(kāi)頭收錄
一些插件,然后剩下的兩個(gè)功能是與數據庫操作相關(guān)的功能。
最后,通過(guò)從weixin.gsdata中選擇*;在數據庫中,我可以獲取到我抓取到的這個(gè)微信公眾號的文章數據,包括標題、發(fā)布日期、閱讀量、點(diǎn)贊、訪(fǎng)問(wèn)網(wǎng)址等信息。
分析數據
這些數據只是最原創(chuàng )
的數據。我可以把上面的數據導入到Excel中進(jìn)行簡(jiǎn)單的分析處理,然后就可以得到我需要的文章列表了。分析思路如下:
我喜歡的微信公眾號只有幾個(gè)。我可以用這個(gè)程序抓取我喜歡的微信公眾號上的所有文章。如果我愿意,我可以進(jìn)一步篩選出更多高質(zhì)量的文章。
程序很簡(jiǎn)單,但是一個(gè)簡(jiǎn)單的程序就可以實(shí)現生活中的一些想法,是不是一件很美妙的事情。 查看全部
querylist采集微信公眾號文章(搜狗微信搜索中的微信文章獲取文章的瀏覽量和點(diǎn)贊量)
在線(xiàn)工具:微信文章轉PDF
微信公眾平臺上有很多公眾號,里面有各種各樣的文章,很多很亂。但是,在這些文章中,肯定會(huì )有我認為的精品文章。
所以如果我能寫(xiě)一個(gè)程序來(lái)獲取我喜歡的微信公眾號上的文章,獲取文章的瀏覽量和點(diǎn)贊數,然后進(jìn)行簡(jiǎn)單的數據分析,那么最終的文章列表肯定會(huì )是成為更好的文章。
這里需要注意的是,通過(guò)寫(xiě)爬蟲(chóng)在搜狗微信搜索中獲取微信文章,是無(wú)法獲取到瀏覽量和點(diǎn)贊這兩個(gè)關(guān)鍵數據的(我是編程入門(mén)級的)。所以我采取了不同的方法,通過(guò)清博指數網(wǎng)站,來(lái)獲取我想要的數據。
注:目前我們已經(jīng)找到了獲取搜狗微信文章瀏覽量和點(diǎn)贊數的方法。2017.02.03
事實(shí)上,清博指數網(wǎng)站上的數據是非常完整的??梢圆榭次⑿殴娞柫斜?,可以查看每日、每周、每月的熱門(mén)帖子。但正如我上面所說(shuō),內容相當混亂。閱讀量大的文章可能是一些家長(cháng)級人才會(huì )喜歡的文章。
當然,我也可以在這個(gè)網(wǎng)站上搜索特定的微信公眾號,然后閱讀它的歷史文章。青博索引也很詳細,文章可以按照閱讀數、點(diǎn)贊數等排序。但是,我需要的可能是一個(gè)很簡(jiǎn)單的點(diǎn)贊數除以閱讀數的指標,所以需要通過(guò)爬蟲(chóng)爬取以上數據進(jìn)行簡(jiǎn)單的分析。順便說(shuō)一句,你可以練習你的手,感覺(jué)很無(wú)聊。
啟動(dòng)程序
以建起財經(jīng)微信公眾號為例,我需要先打開(kāi)它的文章界面,下面是它的url:
http://www.gsdata.cn/query/art ... e%3D1
然后我通過(guò)分析發(fā)現它總共有25頁(yè)文章,也就是文章最后一頁(yè)的url如下,注意只有last參數不同:
http://www.gsdata.cn/query/art ... %3D25
所以你可以編寫(xiě)一個(gè)函數并調用它 25 次。
BeautifulSoup 爬取你在網(wǎng)絡(luò )上需要的數據
忘了說(shuō)了,我寫(xiě)程序用的語(yǔ)言是Python,爬蟲(chóng)入口很簡(jiǎn)單。那么BeautifulSoup就是一個(gè)網(wǎng)頁(yè)分析插件,非常方便的獲取文章中的HTML數據。
下一步是分析網(wǎng)頁(yè)結構:
我用紅框框了兩篇文章,它們在網(wǎng)頁(yè)上的結構代碼是一樣的。然后我可以通過(guò)查看元素看到網(wǎng)頁(yè)的相應代碼,然后我可以編寫(xiě)抓取規則。下面我直接寫(xiě)了一個(gè)函數:
# 獲取網(wǎng)頁(yè)中的數據
def get_webdata(url):
headers = {
'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'
}
r = requests.get(url,headers=headers)
c = r.content
b = BeautifulSoup(c)
data_list = b.find('ul',{'class':'article-ul'})
data_li = data_list.findAll('li')
for i in data_li:
# 替換標題中的英文雙引號,防止插入數據庫時(shí)出現錯誤
title = i.find('h4').find('a').get_text().replace('"','\'\'')
link = i.find('h4').find('a').attrs['href']
source = i.find('span',{'class':'blue'}).get_text()
time = i.find('span',{'class':'blue'}).parent.next_sibling.next_sibling.get_text().replace('發(fā)布時(shí)間:'.decode('utf-8'),'')
readnum = int(i.find('i',{'class':'fa-book'}).next_sibling)
praisenum = int(i.find('i',{'class':'fa-thumbs-o-up'}).next_sibling)
insert_content(title,readnum,praisenum,time,link,source)
這個(gè)函數包括先使用requests獲取網(wǎng)頁(yè)的內容,然后傳遞給BeautifulSoup分析提取我需要的數據,然后通過(guò)insert_content函數在數據庫中,這次就不涉及數據庫的知識了,所有的代碼都會(huì )在下面給出,也算是怕以后忘記了。
我個(gè)人認為,其實(shí)BeautifulSoup的知識點(diǎn)只需要掌握我在上面代碼中用到的幾個(gè)常用語(yǔ)句,比如find、findAll、get_text()、attrs['src']等等。
循環(huán)獲取并寫(xiě)入數據庫
你還記得第一個(gè)網(wǎng)址嗎?總共需要爬取25個(gè)頁(yè)面。這25個(gè)頁(yè)面的url其實(shí)和最后一個(gè)參數是不一樣的,所以你可以給出一個(gè)基本的url,使用for函數直接生成25個(gè)url。而已:
# 生成需要爬取的網(wǎng)頁(yè)鏈接且進(jìn)行爬取
def get_urls_webdatas(basic_url,range_num):
for i in range(1,range_num+1):
url = basic_url + str(i)
print url
print ''
get_webdata(url)
time.sleep(round(random.random(),1))
basic_url = 'http://www.gsdata.cn/query/article?q=jane7ducai&post_time=0&sort=-3&date=&search_field=4&page='
get_urls_webdatas(basic_url,25)
和上面的代碼一樣,函數get_urls_webdataas傳入了兩個(gè)參數,分別是基本url和需要的頁(yè)數。你可以看到我在代碼的最后一行調用了這個(gè)函數。
這個(gè)函數還調用了我寫(xiě)的函數get_webdata來(lái)抓取上面的頁(yè)面,這樣25頁(yè)的文章數據就會(huì )一次性寫(xiě)入數據庫。
那么請注意這個(gè)小技巧:
time.sleep(round(random.random(),1))
每次使用程序爬取一個(gè)網(wǎng)頁(yè),這個(gè)語(yǔ)句都會(huì )在1s內隨機生成一段時(shí)間,然后休息這么一小段時(shí)間,然后繼續爬下一個(gè)頁(yè)面,可以防止被ban。
獲取最終數據
先把程序的剩余代碼給我:
#coding:utf-8
import requests,MySQLdb,random,time
from bs4 import BeautifulSoup
def get_conn():
conn = MySQLdb.connect('localhost','root','0000','weixin',charset='utf8')
return conn
def insert_content(title,readnum,praisenum,time,link,source):
conn = get_conn()
cur = conn.cursor()
print title,readnum
sql = 'insert into weixin.gsdata(title,readnum,praisenum,time,link,source) values ("%s","%s","%s","%s","%s","%s")' % (title,readnum,praisenum,time,link,source)
cur.execute(sql)
conn.commit()
cur.close()
conn.close()
在導入的開(kāi)頭收錄
一些插件,然后剩下的兩個(gè)功能是與數據庫操作相關(guān)的功能。
最后,通過(guò)從weixin.gsdata中選擇*;在數據庫中,我可以獲取到我抓取到的這個(gè)微信公眾號的文章數據,包括標題、發(fā)布日期、閱讀量、點(diǎn)贊、訪(fǎng)問(wèn)網(wǎng)址等信息。
分析數據
這些數據只是最原創(chuàng )
的數據。我可以把上面的數據導入到Excel中進(jìn)行簡(jiǎn)單的分析處理,然后就可以得到我需要的文章列表了。分析思路如下:
我喜歡的微信公眾號只有幾個(gè)。我可以用這個(gè)程序抓取我喜歡的微信公眾號上的所有文章。如果我愿意,我可以進(jìn)一步篩選出更多高質(zhì)量的文章。
程序很簡(jiǎn)單,但是一個(gè)簡(jiǎn)單的程序就可以實(shí)現生活中的一些想法,是不是一件很美妙的事情。
querylist采集微信公眾號文章(微信公眾號文章的輿情監控系統)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 173 次瀏覽 ? 2021-12-23 16:23
小明醬是2018年元旦更新的,文筆還是很粗糙的。如果您遇到爬蟲(chóng)問(wèn)題,歡迎交流,評論區隨時(shí)為您開(kāi)放!
實(shí)習已經(jīng)過(guò)去兩周了,目前的任務(wù)量不是很大。我的老板人很好,他是一名軍校學(xué)生,分配給我的任務(wù)比我想象的更接近我的研究方向。他做的是微信公眾號文章的輿情監測系統。以下是系統圖的整體設計流程:
目前第一周是爬取微信公眾號文章,主要功能如下:
以上功能已經(jīng)實(shí)現。真心覺(jué)得在項目中學(xué)習是最高效的方式,但同時(shí)也有不明白的問(wèn)題。希望下周能掌握新知識,做一個(gè)總結。您不能只停留在插件編程中。.
下面我介紹一下思路流程GitHub代碼點(diǎn)擊這里:
大意
輸入公眾號獲取爬蟲(chóng)起始地址
http://weixin.sogou.com/weixin ... 3D%2B公眾號ID+&ie=utf8&_sug_=n&_sug_type_=
基于網(wǎng)頁(yè)結構設計爬取規則
在這個(gè)階段,我徘徊了很長(cháng)時(shí)間??吹胶芏郿emo設計花哨的反揀貨策略,讓我心慌了半天。
1.第一級:找到指定公眾號,獲取公眾號首頁(yè)鏈接
2.Level 2:跳轉到首頁(yè),找到文章的各個(gè)鏈接
3. Level 3:進(jìn)入每個(gè)文章頁(yè)面進(jìn)行信息爬取,三個(gè)綠色框內的信息,以及頁(yè)面的主要內容
主要思路是這樣的,用chrome檢查的部分就不細說(shuō)了,是例行操作
網(wǎng)址:
但是當我把網(wǎng)址復制到瀏覽器時(shí),他又回到了微信搜索的首頁(yè),哦,我該怎么辦?我們先來(lái)看看開(kāi)發(fā)者工具
以上參數只對應URL。專(zhuān)注于 tsn。表示訪(fǎng)問(wèn)在文章的一天內。我們應該提出以下要求:
return [scrapy.FormRequest(url='http://weixin.sogou.com/weixin',
formdata={'type':'2',
'ie':'utf8',
'query':key,
'tsn':'1',
'ft':'',
'et':'',
'interation':'',
'sst0': str(int(time.time()*1000)),
'page': str(self.page),
'wxid':'',
'usip':''},
method='get']
上面的問(wèn)題解決了~
存儲詳情
數據存儲量還是很大的,需要大量的樣本來(lái)訓練模型。它現在存儲在數據庫中,但值得我注意的一個(gè)細節是數據的編碼?,F在公眾號的文章里有很多表情符號。,于是出現如下錯誤:
pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x93\\xBD \\xC2...' for column 'article' at row 1")
解決方案參考:
對抗爬行動(dòng)物
主要問(wèn)題是驗證碼,但是如果爬行速度不是很快,是可以避免的。因此,采用以下兩種策略:
import random
DOWNLOAD_DELAY = random.randint(1, 3)
總結頁(yè)面元素匹配問(wèn)題。以后我們會(huì )詳細了解BeautifulSoup的翻頁(yè)邏輯。這個(gè)只能自學(xué)自學(xué)了??紤]換頁(yè)的邏輯數據庫存儲和編碼問(wèn)題。Navicat是新?lián)Q的,感覺(jué)100分。這次配置完成后,放心使用代理IP,網(wǎng)上通過(guò)代碼爬取的IP無(wú)法使用,浪費了很多時(shí)間,邪惡的tsn,學(xué)了一招笑死了。
爬行的基本思路很清晰,但其實(shí)我還沒(méi)有完全掌握爬行,還有很多方面需要繼續學(xué)習。正如行走所說(shuō)的那樣,我心急如焚,想盡快實(shí)現自己的目標,卻忽略了正確的原則和基礎,是絕對不可能掌握的。因此,在寒假期間,我希望能好好學(xué)習以下知識:
尤其是第二點(diǎn)非常非常重要。學(xué)習會(huì )可以證明你可以爬,而不是僅僅拼湊幾段代碼來(lái)運行,你會(huì )得到很多東西。同時(shí)也希望志同道合的朋友可以加我。微信,一起進(jìn)步!哈哈我的微信歡迎私聊~ 查看全部
querylist采集微信公眾號文章(微信公眾號文章的輿情監控系統)
小明醬是2018年元旦更新的,文筆還是很粗糙的。如果您遇到爬蟲(chóng)問(wèn)題,歡迎交流,評論區隨時(shí)為您開(kāi)放!
實(shí)習已經(jīng)過(guò)去兩周了,目前的任務(wù)量不是很大。我的老板人很好,他是一名軍校學(xué)生,分配給我的任務(wù)比我想象的更接近我的研究方向。他做的是微信公眾號文章的輿情監測系統。以下是系統圖的整體設計流程:
目前第一周是爬取微信公眾號文章,主要功能如下:
以上功能已經(jīng)實(shí)現。真心覺(jué)得在項目中學(xué)習是最高效的方式,但同時(shí)也有不明白的問(wèn)題。希望下周能掌握新知識,做一個(gè)總結。您不能只停留在插件編程中。.
下面我介紹一下思路流程GitHub代碼點(diǎn)擊這里:
大意
輸入公眾號獲取爬蟲(chóng)起始地址
http://weixin.sogou.com/weixin ... 3D%2B公眾號ID+&ie=utf8&_sug_=n&_sug_type_=
基于網(wǎng)頁(yè)結構設計爬取規則
在這個(gè)階段,我徘徊了很長(cháng)時(shí)間??吹胶芏郿emo設計花哨的反揀貨策略,讓我心慌了半天。
1.第一級:找到指定公眾號,獲取公眾號首頁(yè)鏈接
2.Level 2:跳轉到首頁(yè),找到文章的各個(gè)鏈接
3. Level 3:進(jìn)入每個(gè)文章頁(yè)面進(jìn)行信息爬取,三個(gè)綠色框內的信息,以及頁(yè)面的主要內容
主要思路是這樣的,用chrome檢查的部分就不細說(shuō)了,是例行操作
網(wǎng)址:
但是當我把網(wǎng)址復制到瀏覽器時(shí),他又回到了微信搜索的首頁(yè),哦,我該怎么辦?我們先來(lái)看看開(kāi)發(fā)者工具
以上參數只對應URL。專(zhuān)注于 tsn。表示訪(fǎng)問(wèn)在文章的一天內。我們應該提出以下要求:
return [scrapy.FormRequest(url='http://weixin.sogou.com/weixin',
formdata={'type':'2',
'ie':'utf8',
'query':key,
'tsn':'1',
'ft':'',
'et':'',
'interation':'',
'sst0': str(int(time.time()*1000)),
'page': str(self.page),
'wxid':'',
'usip':''},
method='get']
上面的問(wèn)題解決了~
存儲詳情
數據存儲量還是很大的,需要大量的樣本來(lái)訓練模型。它現在存儲在數據庫中,但值得我注意的一個(gè)細節是數據的編碼?,F在公眾號的文章里有很多表情符號。,于是出現如下錯誤:
pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x93\\xBD \\xC2...' for column 'article' at row 1")
解決方案參考:
對抗爬行動(dòng)物
主要問(wèn)題是驗證碼,但是如果爬行速度不是很快,是可以避免的。因此,采用以下兩種策略:
import random
DOWNLOAD_DELAY = random.randint(1, 3)
總結頁(yè)面元素匹配問(wèn)題。以后我們會(huì )詳細了解BeautifulSoup的翻頁(yè)邏輯。這個(gè)只能自學(xué)自學(xué)了??紤]換頁(yè)的邏輯數據庫存儲和編碼問(wèn)題。Navicat是新?lián)Q的,感覺(jué)100分。這次配置完成后,放心使用代理IP,網(wǎng)上通過(guò)代碼爬取的IP無(wú)法使用,浪費了很多時(shí)間,邪惡的tsn,學(xué)了一招笑死了。
爬行的基本思路很清晰,但其實(shí)我還沒(méi)有完全掌握爬行,還有很多方面需要繼續學(xué)習。正如行走所說(shuō)的那樣,我心急如焚,想盡快實(shí)現自己的目標,卻忽略了正確的原則和基礎,是絕對不可能掌握的。因此,在寒假期間,我希望能好好學(xué)習以下知識:
尤其是第二點(diǎn)非常非常重要。學(xué)習會(huì )可以證明你可以爬,而不是僅僅拼湊幾段代碼來(lái)運行,你會(huì )得到很多東西。同時(shí)也希望志同道合的朋友可以加我。微信,一起進(jìn)步!哈哈我的微信歡迎私聊~
querylist采集微信公眾號文章(微信公眾號文章的輿情監控系統)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 133 次瀏覽 ? 2021-12-23 16:22
小明醬是2018年元旦更新的,文筆還是很粗糙的。如果您遇到爬蟲(chóng)問(wèn)題,歡迎交流,評論區隨時(shí)為您開(kāi)放!
實(shí)習已經(jīng)過(guò)去兩周了,目前的任務(wù)量不是很大。我的老板人很好,他是一名軍校學(xué)生,分配給我的任務(wù)比我想象的更接近我的研究方向。他做的是微信公眾號文章的輿情監測系統。以下是系統圖的整體設計流程:
目前第一周是爬取微信公眾號文章,主要功能如下:
以上功能已經(jīng)實(shí)現。真心覺(jué)得在項目中學(xué)習是最高效的方式,但同時(shí)也有不明白的問(wèn)題。希望下周能掌握新知識,做一個(gè)總結。您不能只停留在插件編程中。.
下面我介紹一下思路流程GitHub代碼點(diǎn)擊這里:
大意
輸入公眾號獲取爬蟲(chóng)起始地址
http://weixin.sogou.com/weixin ... 3D%2B公眾號ID+&ie=utf8&_sug_=n&_sug_type_=
基于網(wǎng)頁(yè)結構設計爬取規則
在這個(gè)階段,我徘徊了很長(cháng)時(shí)間??吹胶芏郿emo設計花哨的反揀貨策略,讓我心慌了半天。
1.第一級:找到指定公眾號,獲取公眾號首頁(yè)鏈接
2.Level 2:跳轉到首頁(yè),找到文章的各個(gè)鏈接
3. Level 3:進(jìn)入每個(gè)文章頁(yè)面進(jìn)行信息爬取,三個(gè)綠色框內的信息,以及頁(yè)面的主要內容
主要思路是這樣的,用chrome檢查的部分就不細說(shuō)了,是例行操作
網(wǎng)址:
但是當我把網(wǎng)址復制到瀏覽器時(shí),他又回到了微信搜索的首頁(yè),哦,我該怎么辦?我們先來(lái)看看開(kāi)發(fā)者工具
以上參數只對應URL。專(zhuān)注于 tsn。表示訪(fǎng)問(wèn)在文章的一天內。我們應該提出以下要求:
return [scrapy.FormRequest(url='http://weixin.sogou.com/weixin',
formdata={'type':'2',
'ie':'utf8',
'query':key,
'tsn':'1',
'ft':'',
'et':'',
'interation':'',
'sst0': str(int(time.time()*1000)),
'page': str(self.page),
'wxid':'',
'usip':''},
method='get']
上面的問(wèn)題解決了~
存儲詳情
數據存儲量還是很大的,需要大量的樣本來(lái)訓練模型。它現在存儲在數據庫中,但值得我注意的一個(gè)細節是數據的編碼?,F在公眾號的文章里有很多表情符號。,于是出現如下錯誤:
pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x93\\xBD \\xC2...' for column 'article' at row 1")
解決方案參考:
對抗爬行動(dòng)物
主要問(wèn)題是驗證碼,但是如果爬行速度不是很快,是可以避免的。因此,采用以下兩種策略:
import random
DOWNLOAD_DELAY = random.randint(1, 3)
總結頁(yè)面元素匹配問(wèn)題。以后我們會(huì )詳細了解BeautifulSoup的翻頁(yè)邏輯。這個(gè)只能自學(xué)自學(xué)了??紤]換頁(yè)的邏輯數據庫存儲和編碼問(wèn)題。Navicat是新?lián)Q的,感覺(jué)100分。這次配置完成后,放心使用代理IP,網(wǎng)上通過(guò)代碼爬取的IP無(wú)法使用,浪費了很多時(shí)間,邪惡的tsn,學(xué)了一招笑死了。
爬行的基本思路很清晰,但其實(shí)我還沒(méi)有完全掌握爬行,還有很多方面需要繼續學(xué)習。正如行走所說(shuō)的那樣,我心急如焚,想盡快實(shí)現自己的目標,卻忽略了正確的原則和基礎,是絕對不可能掌握的。因此,在寒假期間,我希望能好好學(xué)習以下知識:
尤其是第二點(diǎn)非常非常重要。學(xué)習會(huì )可以證明你可以爬,而不是僅僅拼湊幾段代碼來(lái)運行,你會(huì )得到很多東西。同時(shí)也希望志同道合的朋友可以加我。微信,一起進(jìn)步!哈哈我的微信歡迎私聊~ 查看全部
querylist采集微信公眾號文章(微信公眾號文章的輿情監控系統)
小明醬是2018年元旦更新的,文筆還是很粗糙的。如果您遇到爬蟲(chóng)問(wèn)題,歡迎交流,評論區隨時(shí)為您開(kāi)放!
實(shí)習已經(jīng)過(guò)去兩周了,目前的任務(wù)量不是很大。我的老板人很好,他是一名軍校學(xué)生,分配給我的任務(wù)比我想象的更接近我的研究方向。他做的是微信公眾號文章的輿情監測系統。以下是系統圖的整體設計流程:
目前第一周是爬取微信公眾號文章,主要功能如下:
以上功能已經(jīng)實(shí)現。真心覺(jué)得在項目中學(xué)習是最高效的方式,但同時(shí)也有不明白的問(wèn)題。希望下周能掌握新知識,做一個(gè)總結。您不能只停留在插件編程中。.
下面我介紹一下思路流程GitHub代碼點(diǎn)擊這里:
大意
輸入公眾號獲取爬蟲(chóng)起始地址
http://weixin.sogou.com/weixin ... 3D%2B公眾號ID+&ie=utf8&_sug_=n&_sug_type_=
基于網(wǎng)頁(yè)結構設計爬取規則
在這個(gè)階段,我徘徊了很長(cháng)時(shí)間??吹胶芏郿emo設計花哨的反揀貨策略,讓我心慌了半天。
1.第一級:找到指定公眾號,獲取公眾號首頁(yè)鏈接
2.Level 2:跳轉到首頁(yè),找到文章的各個(gè)鏈接
3. Level 3:進(jìn)入每個(gè)文章頁(yè)面進(jìn)行信息爬取,三個(gè)綠色框內的信息,以及頁(yè)面的主要內容
主要思路是這樣的,用chrome檢查的部分就不細說(shuō)了,是例行操作
網(wǎng)址:
但是當我把網(wǎng)址復制到瀏覽器時(shí),他又回到了微信搜索的首頁(yè),哦,我該怎么辦?我們先來(lái)看看開(kāi)發(fā)者工具
以上參數只對應URL。專(zhuān)注于 tsn。表示訪(fǎng)問(wèn)在文章的一天內。我們應該提出以下要求:
return [scrapy.FormRequest(url='http://weixin.sogou.com/weixin',
formdata={'type':'2',
'ie':'utf8',
'query':key,
'tsn':'1',
'ft':'',
'et':'',
'interation':'',
'sst0': str(int(time.time()*1000)),
'page': str(self.page),
'wxid':'',
'usip':''},
method='get']
上面的問(wèn)題解決了~
存儲詳情
數據存儲量還是很大的,需要大量的樣本來(lái)訓練模型。它現在存儲在數據庫中,但值得我注意的一個(gè)細節是數據的編碼?,F在公眾號的文章里有很多表情符號。,于是出現如下錯誤:
pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x93\\xBD \\xC2...' for column 'article' at row 1")
解決方案參考:
對抗爬行動(dòng)物
主要問(wèn)題是驗證碼,但是如果爬行速度不是很快,是可以避免的。因此,采用以下兩種策略:
import random
DOWNLOAD_DELAY = random.randint(1, 3)
總結頁(yè)面元素匹配問(wèn)題。以后我們會(huì )詳細了解BeautifulSoup的翻頁(yè)邏輯。這個(gè)只能自學(xué)自學(xué)了??紤]換頁(yè)的邏輯數據庫存儲和編碼問(wèn)題。Navicat是新?lián)Q的,感覺(jué)100分。這次配置完成后,放心使用代理IP,網(wǎng)上通過(guò)代碼爬取的IP無(wú)法使用,浪費了很多時(shí)間,邪惡的tsn,學(xué)了一招笑死了。
爬行的基本思路很清晰,但其實(shí)我還沒(méi)有完全掌握爬行,還有很多方面需要繼續學(xué)習。正如行走所說(shuō)的那樣,我心急如焚,想盡快實(shí)現自己的目標,卻忽略了正確的原則和基礎,是絕對不可能掌握的。因此,在寒假期間,我希望能好好學(xué)習以下知識:
尤其是第二點(diǎn)非常非常重要。學(xué)習會(huì )可以證明你可以爬,而不是僅僅拼湊幾段代碼來(lái)運行,你會(huì )得到很多東西。同時(shí)也希望志同道合的朋友可以加我。微信,一起進(jìn)步!哈哈我的微信歡迎私聊~
querylist采集微信公眾號文章(一個(gè)獲取微信公眾號文章的方法,你知道嗎?)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 169 次瀏覽 ? 2021-12-21 18:00
之前自己維護過(guò)公眾號,但是因為個(gè)人關(guān)系好久沒(méi)有更新,今天上來(lái)想起來(lái),卻無(wú)意中找到了獲取微信公眾號文章的方法。
之前的獲取方式有很多,通過(guò)搜狗、清博、web、客戶(hù)端等都可以,這個(gè)可能不太好,但是操作簡(jiǎn)單易懂。
所以。首先,您需要在微信公眾平臺上有一個(gè)賬號
微信公眾平臺:
登錄后,進(jìn)入首頁(yè),點(diǎn)擊新建群發(fā)。
選擇自創(chuàng )圖形:
好像是公眾號操作教學(xué)
進(jìn)入編輯頁(yè)面后,點(diǎn)擊超鏈接
彈出一個(gè)選擇框,我們在框中輸入對應的公眾號名稱(chēng),就會(huì )出現對應的文章列表
你驚喜嗎?您可以打開(kāi)控制臺并檢查請求的界面
打開(kāi)回復,里面有我們需要的文章鏈接
確認數據后,我們需要對這個(gè)界面進(jìn)行分析。
感覺(jué)非常簡(jiǎn)單。GET 請求攜帶一些參數。
Fakeid是公眾號的唯一ID,所以如果想直接通過(guò)名字獲取文章的列表,還需要先獲取fakeid。
當我們輸入官方賬號名稱(chēng)時(shí),點(diǎn)擊搜索??梢钥吹剿阉鹘缑姹挥|發(fā),返回fakeid。
這個(gè)接口需要的參數不多。
接下來(lái)我們就可以用代碼來(lái)模擬上面的操作了。
但您還需要使用現有的 cookie 來(lái)避免登錄。
我沒(méi)有測試過(guò)當前cookie的有效期??赡苄枰皶r(shí)更新 cookie。
測試代碼:
import requests
import json
Cookie = '請換上自己的Cookie,獲取方法:直接復制下來(lái)'
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
headers = {
"Cookie": Cookie,
"User-Agent": 'Mozilla/5.0 (Linux; Android 10; YAL-AL00 Build/HUAWEIYAL-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.64 HuaweiBrowser/10.0.1.335 Mobile Safari/537.36'
}
keyword = 'pythonlx' # 公眾號名字:可自定義
token = '你的token' # 獲取方法:如上述 直接復制下來(lái)
search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?action=search_biz&begin=0&count=5&query={}&token={}&lang=zh_CN&f=json&ajax=1'.format(keyword,token)
doc = requests.get(search_url,headers=headers).text
jstext = json.loads(doc)
fakeid = jstext['list'][0]['fakeid']
data = {
"token": token,
"lang": "zh_CN",
"f": "json",
"ajax": "1",
"action": "list_ex",
"begin": 0,
"count": "5",
"query": "",
"fakeid": fakeid,
"type": "9",
}
json_test = requests.get(url, headers=headers, params=data).text
json_test = json.loads(json_test)
print(json_test)
這樣就可以得到最新的10篇文章。如果想獲取更多歷史記錄文章,可以修改數據中的“begin”參數,0為第一頁(yè),5為第二頁(yè),10為第三頁(yè)(以此類(lèi)推)
但是如果你想大規模爬行:
請自己安排一個(gè)穩定的代理,降低爬蟲(chóng)速度,準備多個(gè)賬號,減少被屏蔽的可能性。
相關(guān)文章 查看全部
querylist采集微信公眾號文章(一個(gè)獲取微信公眾號文章的方法,你知道嗎?)
之前自己維護過(guò)公眾號,但是因為個(gè)人關(guān)系好久沒(méi)有更新,今天上來(lái)想起來(lái),卻無(wú)意中找到了獲取微信公眾號文章的方法。
之前的獲取方式有很多,通過(guò)搜狗、清博、web、客戶(hù)端等都可以,這個(gè)可能不太好,但是操作簡(jiǎn)單易懂。
所以。首先,您需要在微信公眾平臺上有一個(gè)賬號
微信公眾平臺:

登錄后,進(jìn)入首頁(yè),點(diǎn)擊新建群發(fā)。

選擇自創(chuàng )圖形:

好像是公眾號操作教學(xué)
進(jìn)入編輯頁(yè)面后,點(diǎn)擊超鏈接

彈出一個(gè)選擇框,我們在框中輸入對應的公眾號名稱(chēng),就會(huì )出現對應的文章列表

你驚喜嗎?您可以打開(kāi)控制臺并檢查請求的界面

打開(kāi)回復,里面有我們需要的文章鏈接

確認數據后,我們需要對這個(gè)界面進(jìn)行分析。
感覺(jué)非常簡(jiǎn)單。GET 請求攜帶一些參數。

Fakeid是公眾號的唯一ID,所以如果想直接通過(guò)名字獲取文章的列表,還需要先獲取fakeid。
當我們輸入官方賬號名稱(chēng)時(shí),點(diǎn)擊搜索??梢钥吹剿阉鹘缑姹挥|發(fā),返回fakeid。

這個(gè)接口需要的參數不多。

接下來(lái)我們就可以用代碼來(lái)模擬上面的操作了。
但您還需要使用現有的 cookie 來(lái)避免登錄。

我沒(méi)有測試過(guò)當前cookie的有效期??赡苄枰皶r(shí)更新 cookie。
測試代碼:
import requests
import json
Cookie = '請換上自己的Cookie,獲取方法:直接復制下來(lái)'
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
headers = {
"Cookie": Cookie,
"User-Agent": 'Mozilla/5.0 (Linux; Android 10; YAL-AL00 Build/HUAWEIYAL-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.64 HuaweiBrowser/10.0.1.335 Mobile Safari/537.36'
}
keyword = 'pythonlx' # 公眾號名字:可自定義
token = '你的token' # 獲取方法:如上述 直接復制下來(lái)
search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?action=search_biz&begin=0&count=5&query={}&token={}&lang=zh_CN&f=json&ajax=1'.format(keyword,token)
doc = requests.get(search_url,headers=headers).text
jstext = json.loads(doc)
fakeid = jstext['list'][0]['fakeid']
data = {
"token": token,
"lang": "zh_CN",
"f": "json",
"ajax": "1",
"action": "list_ex",
"begin": 0,
"count": "5",
"query": "",
"fakeid": fakeid,
"type": "9",
}
json_test = requests.get(url, headers=headers, params=data).text
json_test = json.loads(json_test)
print(json_test)
這樣就可以得到最新的10篇文章。如果想獲取更多歷史記錄文章,可以修改數據中的“begin”參數,0為第一頁(yè),5為第二頁(yè),10為第三頁(yè)(以此類(lèi)推)
但是如果你想大規模爬行:
請自己安排一個(gè)穩定的代理,降低爬蟲(chóng)速度,準備多個(gè)賬號,減少被屏蔽的可能性。
相關(guān)文章
querylist采集微信公眾號文章(Python微信公眾號文章爬取一.思路我們通過(guò)網(wǎng)頁(yè)版)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 135 次瀏覽 ? 2021-12-19 05:12
Python微信公眾號文章抓取
一.思考
我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
從界面我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
二. 接口分析
微信公眾號獲取界面:
范圍:
行動(dòng)=search_biz
開(kāi)始=0
計數=5
查詢(xún)=官方帳號名稱(chēng)
token=每個(gè)賬戶(hù)對應的token值
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。
獲取對應公眾號文章的界面:
范圍:
動(dòng)作=list_ex
開(kāi)始=0
計數=5
fakeid=MjM5NDAwMTA2MA==
類(lèi)型=9
查詢(xún)=
令牌=557131216
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以獲取到微信公眾號文章的數據了。
三.實(shí)現第一步:
首先我們需要通過(guò)selenium模擬登錄,然后獲取cookie和對應的token
def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get('https://mp.weixin.qq.com/')
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name='account']")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name='password']")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class='btn_login']").click()
sleep(2)
# 微信登錄驗證
print('請掃描二維碼')
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get('https://mp.weixin.qq.com/')
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item['name']] = item['value']
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open('cookie.txt', 'w+', encoding='utf-8') as f:
f.write(cookie_str)
print('cookie保存到本地成功')
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split('?')[1].split('&')
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split('=')[0]] = item.split('=')[1]
# 返回token
return paramdict['token']
定義了一個(gè)登錄方法,里面的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù),輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,用登錄微信掃一掃即可。
刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token,然后返回。
第二步:1.請求對應的公眾號接口,得到我們需要的fakeid
url = 'https://mp.weixin.qq.com'
headers = {
'HOST': 'mp.weixin.qq.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'
}
with open('cookie.txt', 'r', encoding='utf-8') as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = 'https://mp.weixin.qq.com/cgi-b ... 39%3B
params = {
'action': 'search_biz',
'begin': '0',
'count': '5',
'query': '搜索的公眾號名稱(chēng)',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
傳入我們獲取到的token和cookie,然后通過(guò)requests.get請求獲取返回的微信公眾號的json數據
lists = search_resp.json().get('list')[0]
通過(guò)上面的代碼可以得到對應的公眾號數據
fakeid = lists.get('fakeid')
通過(guò)上面的代碼可以得到對應的fakeid
2.請求獲取微信公眾號文章接口,獲取我們需要的數據文章
appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'
params_data = {
'action': 'list_ex',
'begin': '0',
'count': '5',
'fakeid': fakeid,
'type': '9',
'query': '',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
我們傳入fakeid和token,然后調用requests.get請求接口獲取返回的json數據。
我們已經(jīng)實(shí)現了對微信公眾號文章的抓取。
四.總結
通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,當我們在循環(huán)中獲取文章時(shí),一定要設置延遲時(shí)間,否則賬號很容易被封,獲取不到返回的數據。 查看全部
querylist采集微信公眾號文章(Python微信公眾號文章爬取一.思路我們通過(guò)網(wǎng)頁(yè)版)
Python微信公眾號文章抓取
一.思考
我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面


從界面我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
二. 接口分析
微信公眾號獲取界面:
范圍:
行動(dòng)=search_biz
開(kāi)始=0
計數=5
查詢(xún)=官方帳號名稱(chēng)
token=每個(gè)賬戶(hù)對應的token值
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。

獲取對應公眾號文章的界面:
范圍:
動(dòng)作=list_ex
開(kāi)始=0
計數=5
fakeid=MjM5NDAwMTA2MA==
類(lèi)型=9
查詢(xún)=
令牌=557131216
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以獲取到微信公眾號文章的數據了。

三.實(shí)現第一步:
首先我們需要通過(guò)selenium模擬登錄,然后獲取cookie和對應的token
def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get('https://mp.weixin.qq.com/')
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name='account']")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name='password']")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class='btn_login']").click()
sleep(2)
# 微信登錄驗證
print('請掃描二維碼')
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get('https://mp.weixin.qq.com/')
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item['name']] = item['value']
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open('cookie.txt', 'w+', encoding='utf-8') as f:
f.write(cookie_str)
print('cookie保存到本地成功')
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split('?')[1].split('&')
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split('=')[0]] = item.split('=')[1]
# 返回token
return paramdict['token']
定義了一個(gè)登錄方法,里面的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù),輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,用登錄微信掃一掃即可。
刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token,然后返回。
第二步:1.請求對應的公眾號接口,得到我們需要的fakeid
url = 'https://mp.weixin.qq.com'
headers = {
'HOST': 'mp.weixin.qq.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'
}
with open('cookie.txt', 'r', encoding='utf-8') as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = 'https://mp.weixin.qq.com/cgi-b ... 39%3B
params = {
'action': 'search_biz',
'begin': '0',
'count': '5',
'query': '搜索的公眾號名稱(chēng)',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
傳入我們獲取到的token和cookie,然后通過(guò)requests.get請求獲取返回的微信公眾號的json數據
lists = search_resp.json().get('list')[0]
通過(guò)上面的代碼可以得到對應的公眾號數據
fakeid = lists.get('fakeid')
通過(guò)上面的代碼可以得到對應的fakeid
2.請求獲取微信公眾號文章接口,獲取我們需要的數據文章
appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'
params_data = {
'action': 'list_ex',
'begin': '0',
'count': '5',
'fakeid': fakeid,
'type': '9',
'query': '',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
我們傳入fakeid和token,然后調用requests.get請求接口獲取返回的json數據。
我們已經(jīng)實(shí)現了對微信公眾號文章的抓取。
四.總結
通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,當我們在循環(huán)中獲取文章時(shí),一定要設置延遲時(shí)間,否則賬號很容易被封,獲取不到返回的數據。
querylist采集微信公眾號文章( 訪(fǎng)問(wèn)示例地址參考資料)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 154 次瀏覽 ? 2021-12-18 22:14
訪(fǎng)問(wèn)示例地址參考資料)
核心代碼
要求獲取文章的標題、跳轉鏈接、發(fā)布時(shí)間和帶有圖片的文章縮略圖。具體代碼如下。
<p>'use strict';
const puppeteer = require('puppeteer')
exports.main = async (event, context) => {
const browser = await puppeteer.launch({
headless: true,
args: ['--no-sandbox', '--disable-setuid-sandbox'],
dumpio: false,
})
const page = await browser.newPage()
page.setUserAgent(
'Mozilla/5.0 (Linux; Android 10; Redmi K30 Pro Build/QKQ1.191117.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2581 MMWEBSDK/200801 Mobile Safari/537.36'
)
await page.goto('獲取到的話(huà)題標簽鏈接', {
waitUntil: 'networkidle0',
})
const articleInfo = await page.evaluate(() => {
const element = document.querySelector(".album__list");
let items = element.getElementsByClassName("album__list-item");
let title = [];
for (let i = 0; i 查看全部
querylist采集微信公眾號文章(
訪(fǎng)問(wèn)示例地址參考資料)

核心代碼
要求獲取文章的標題、跳轉鏈接、發(fā)布時(shí)間和帶有圖片的文章縮略圖。具體代碼如下。
<p>'use strict';
const puppeteer = require('puppeteer')
exports.main = async (event, context) => {
const browser = await puppeteer.launch({
headless: true,
args: ['--no-sandbox', '--disable-setuid-sandbox'],
dumpio: false,
})
const page = await browser.newPage()
page.setUserAgent(
'Mozilla/5.0 (Linux; Android 10; Redmi K30 Pro Build/QKQ1.191117.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2581 MMWEBSDK/200801 Mobile Safari/537.36'
)
await page.goto('獲取到的話(huà)題標簽鏈接', {
waitUntil: 'networkidle0',
})
const articleInfo = await page.evaluate(() => {
const element = document.querySelector(".album__list");
let items = element.getElementsByClassName("album__list-item");
let title = [];
for (let i = 0; i
querylist采集微信公眾號文章(Fiddler如何抓包這里不再一一闡述,首先第一次如何安裝?(組圖))
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 164 次瀏覽 ? 2021-12-18 22:13
前言
微信后臺很多消息都沒(méi)有回復:看到就回復不了。有什么問(wèn)題可以加我的微信:菜單->聯(lián)系我
由于最近需要公眾號的歷史文章信息,嘗試爬取。雖然目前可以爬取數據,但是還不能實(shí)現大量的自動(dòng)化爬取。原因是參數key值是時(shí)間敏感的(具體時(shí)間沒(méi)有驗證為20分鐘),目前不知道怎么生成。
文章歷史列表爬取
第一個(gè)是搜狗微信,但是搜狗微信只能看到前十篇文章,看不到閱讀量和觀(guān)看數。嘗試爬取手機包,發(fā)現沒(méi)有抓取到任何信息。知道原因:
1、Android系統7. 0以下,微信信任系統的證書(shū)。
2、Android系統7.0及以上,微信7.0版本,微信信任系統提供的證書(shū)。
3、Android系統7.0及以上,微信7.0及以上,微信只信任自己的證書(shū)。
我也試過(guò)用appium來(lái)自動(dòng)爬取,個(gè)人覺(jué)得有點(diǎn)麻煩。所以嘗試從PC上抓取請求。
進(jìn)入正題,這次我用Fiddler抓包。下載鏈接:
Fiddler如何抓包這里就不一一解釋了。首先,第一次安裝Fiddler時(shí),需要安裝一個(gè)證書(shū)來(lái)捕獲HTTPS請求。
如何安裝?
打開(kāi)Fiddler,在菜單欄找到Tools -> Options -> 點(diǎn)擊HTTPS -> 點(diǎn)擊Actions,證書(shū)安裝配置如下:
以我自己的公眾號為例:PC端登錄微信,打開(kāi)Fiddler,按F12開(kāi)始/停止抓包,進(jìn)入公眾號歷史文章頁(yè)面,看到Fiddler有很多請求,如如下圖所示:
由于查看歷史記錄是跳轉到一個(gè)新的頁(yè)面,所以可以從body中看到返回的更多。同時(shí)通過(guò)Content-Type可以知道返回的是css或者html或者js。你可以先看一下html,所以它會(huì )找到上圖紅框中的鏈接,點(diǎn)擊它,從右邊可以看到返回的結果和參數:
從右邊的Headers可以看到請求鏈接、方法、參數等,如果想更清楚的查看參數,可以點(diǎn)擊WebForms查看,就是上圖的結果。以下是重要參數的說(shuō)明:
__biz:微信公眾號的唯一標識(同一公眾號保持不變)
uin:唯一用戶(hù)標識(同一微信用戶(hù)不變)
關(guān)鍵:微信內部算法是時(shí)間敏感的。我目前不知道如何計算。
pass_ticket:有讀權限加密,改了(在我實(shí)際爬取中發(fā)現沒(méi)必要,可以忽略)
這時(shí)候其實(shí)可以寫(xiě)代碼爬取第一頁(yè)的文章,但是返回的是一個(gè)html頁(yè)面,解析頁(yè)面顯然比較麻煩。
可以嘗試向下滑動(dòng),加載下一頁(yè)數據,看看是json還是html。如果是json,好辦,如果還是html,那就得稍微解析一下了。繼續往下查找:
這個(gè)請求是文章的返回列表,是json數據,非常方便我們解析。從參數中我們發(fā)現有一個(gè)offset為10的參數,很明顯這個(gè)參數是分頁(yè)的offset,這個(gè)請求是10來(lái)加載第二頁(yè)的歷史記錄,果斷修改為0,然后發(fā)送請求,拿到第一頁(yè)的數據,然后就不用解析html頁(yè)面了,再次分析參數,發(fā)現是Multi-parameters,很多都沒(méi)用,最后的參數是:
動(dòng)作:getmsg(固定值,應該是獲取更多信息)
__biz、uin、key這三個(gè)值上面已經(jīng)介紹過(guò)了,這里也是必選參數。
f:json(固定值,表示返回json數據)
偏移:頁(yè)面偏移
如果要獲取公眾號的歷史列表,這6個(gè)參數是必須的,其他參數不需要帶。我們來(lái)分析一下請求頭中的聽(tīng)者,如圖:
參數很多,不知道哪些應該帶,哪些不需要帶。最后,我只需要攜帶UA,別的什么都沒(méi)有。最后寫(xiě)個(gè)腳本嘗試獲?。?br /> import?requests
url?=?"鏈接:http://鏈接:mp.weixin鏈接:.qq.com/mp/profile_ext"
headers=?{
????'User-Agent':'Mozilla/5.0?(iPhone;?CPU?iPhone?OS?10_0_1?like?Mac?OS?X)?AppleWebKit/602.1.50?(KHTML,?like?Gecko)?Mobile/14A403?MicroMessenger/6.5.18?NetType/WIFI?Language/zh_CN'
}
param?=?{
????'action':?'getmsg',
????'__biz':?'MzU0NDg3NDg0Ng==',
????'f':?'json',
????'offset':?0,
????'uin':?'MTY5OTE4Mzc5Nw==',
????'key':?'0295ce962daa06881b1fbddd606f47252d0273a7280069e55e1daa347620284614629cd08ef0413941d46dc737cf866bc3ed3012ec202ffa9379c2538035a662e9ffa3f84852a0299a6590811b17de96'
}
index_josn?=?requests.get(url,?params=param,?headers=headers)
print(index_josn.json())
print(index_josn.json().get('general_msg_list'))
獲取json對象中的general_msg_list,得到結果:
獲取文章的詳細信息
我有上面的鏈接,只是請求解析 html 頁(yè)面。此處不再解釋?zhuān)稍谕暾a中查看)。 查看全部
querylist采集微信公眾號文章(Fiddler如何抓包這里不再一一闡述,首先第一次如何安裝?(組圖))
前言
微信后臺很多消息都沒(méi)有回復:看到就回復不了。有什么問(wèn)題可以加我的微信:菜單->聯(lián)系我
由于最近需要公眾號的歷史文章信息,嘗試爬取。雖然目前可以爬取數據,但是還不能實(shí)現大量的自動(dòng)化爬取。原因是參數key值是時(shí)間敏感的(具體時(shí)間沒(méi)有驗證為20分鐘),目前不知道怎么生成。
文章歷史列表爬取
第一個(gè)是搜狗微信,但是搜狗微信只能看到前十篇文章,看不到閱讀量和觀(guān)看數。嘗試爬取手機包,發(fā)現沒(méi)有抓取到任何信息。知道原因:
1、Android系統7. 0以下,微信信任系統的證書(shū)。
2、Android系統7.0及以上,微信7.0版本,微信信任系統提供的證書(shū)。
3、Android系統7.0及以上,微信7.0及以上,微信只信任自己的證書(shū)。
我也試過(guò)用appium來(lái)自動(dòng)爬取,個(gè)人覺(jué)得有點(diǎn)麻煩。所以嘗試從PC上抓取請求。
進(jìn)入正題,這次我用Fiddler抓包。下載鏈接:
Fiddler如何抓包這里就不一一解釋了。首先,第一次安裝Fiddler時(shí),需要安裝一個(gè)證書(shū)來(lái)捕獲HTTPS請求。
如何安裝?
打開(kāi)Fiddler,在菜單欄找到Tools -> Options -> 點(diǎn)擊HTTPS -> 點(diǎn)擊Actions,證書(shū)安裝配置如下:
以我自己的公眾號為例:PC端登錄微信,打開(kāi)Fiddler,按F12開(kāi)始/停止抓包,進(jìn)入公眾號歷史文章頁(yè)面,看到Fiddler有很多請求,如如下圖所示:
由于查看歷史記錄是跳轉到一個(gè)新的頁(yè)面,所以可以從body中看到返回的更多。同時(shí)通過(guò)Content-Type可以知道返回的是css或者html或者js。你可以先看一下html,所以它會(huì )找到上圖紅框中的鏈接,點(diǎn)擊它,從右邊可以看到返回的結果和參數:
從右邊的Headers可以看到請求鏈接、方法、參數等,如果想更清楚的查看參數,可以點(diǎn)擊WebForms查看,就是上圖的結果。以下是重要參數的說(shuō)明:
__biz:微信公眾號的唯一標識(同一公眾號保持不變)
uin:唯一用戶(hù)標識(同一微信用戶(hù)不變)
關(guān)鍵:微信內部算法是時(shí)間敏感的。我目前不知道如何計算。
pass_ticket:有讀權限加密,改了(在我實(shí)際爬取中發(fā)現沒(méi)必要,可以忽略)
這時(shí)候其實(shí)可以寫(xiě)代碼爬取第一頁(yè)的文章,但是返回的是一個(gè)html頁(yè)面,解析頁(yè)面顯然比較麻煩。
可以嘗試向下滑動(dòng),加載下一頁(yè)數據,看看是json還是html。如果是json,好辦,如果還是html,那就得稍微解析一下了。繼續往下查找:
這個(gè)請求是文章的返回列表,是json數據,非常方便我們解析。從參數中我們發(fā)現有一個(gè)offset為10的參數,很明顯這個(gè)參數是分頁(yè)的offset,這個(gè)請求是10來(lái)加載第二頁(yè)的歷史記錄,果斷修改為0,然后發(fā)送請求,拿到第一頁(yè)的數據,然后就不用解析html頁(yè)面了,再次分析參數,發(fā)現是Multi-parameters,很多都沒(méi)用,最后的參數是:
動(dòng)作:getmsg(固定值,應該是獲取更多信息)
__biz、uin、key這三個(gè)值上面已經(jīng)介紹過(guò)了,這里也是必選參數。
f:json(固定值,表示返回json數據)
偏移:頁(yè)面偏移
如果要獲取公眾號的歷史列表,這6個(gè)參數是必須的,其他參數不需要帶。我們來(lái)分析一下請求頭中的聽(tīng)者,如圖:
參數很多,不知道哪些應該帶,哪些不需要帶。最后,我只需要攜帶UA,別的什么都沒(méi)有。最后寫(xiě)個(gè)腳本嘗試獲?。?br /> import?requests
url?=?"鏈接:http://鏈接:mp.weixin鏈接:.qq.com/mp/profile_ext"
headers=?{
????'User-Agent':'Mozilla/5.0?(iPhone;?CPU?iPhone?OS?10_0_1?like?Mac?OS?X)?AppleWebKit/602.1.50?(KHTML,?like?Gecko)?Mobile/14A403?MicroMessenger/6.5.18?NetType/WIFI?Language/zh_CN'
}
param?=?{
????'action':?'getmsg',
????'__biz':?'MzU0NDg3NDg0Ng==',
????'f':?'json',
????'offset':?0,
????'uin':?'MTY5OTE4Mzc5Nw==',
????'key':?'0295ce962daa06881b1fbddd606f47252d0273a7280069e55e1daa347620284614629cd08ef0413941d46dc737cf866bc3ed3012ec202ffa9379c2538035a662e9ffa3f84852a0299a6590811b17de96'
}
index_josn?=?requests.get(url,?params=param,?headers=headers)
print(index_josn.json())
print(index_josn.json().get('general_msg_list'))
獲取json對象中的general_msg_list,得到結果:
獲取文章的詳細信息
我有上面的鏈接,只是請求解析 html 頁(yè)面。此處不再解釋?zhuān)稍谕暾a中查看)。
querylist采集微信公眾號文章(一個(gè)獲取微信公眾號文章的方法,你知道嗎?)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 165 次瀏覽 ? 2021-12-18 01:17
之前是自己維護一個(gè)公眾號,但是因為個(gè)人關(guān)系好久沒(méi)有更新,今天上來(lái)想起來(lái),卻偶然發(fā)現了微信公眾號文章的獲取方式。
之前的獲取方式有很多,通過(guò)搜狗、清博、web、客戶(hù)端等都可以,這個(gè)可能不太好,但是操作簡(jiǎn)單易懂。
所以。首先,您需要在微信公眾平臺上有一個(gè)賬號
微信公眾平臺:
登錄后,進(jìn)入首頁(yè),點(diǎn)擊新建群發(fā)。
選擇自創(chuàng )圖形:
好像是公眾號操作教學(xué)
進(jìn)入編輯頁(yè)面后,點(diǎn)擊超鏈接
彈出一個(gè)選擇框,我們在框中輸入對應的公眾號名稱(chēng),就會(huì )出現對應的文章列表
你驚喜嗎?您可以打開(kāi)控制臺并檢查請求的界面
打開(kāi)回復,里面有我們需要的文章鏈接
確認數據后,我們需要對這個(gè)界面進(jìn)行分析。
感覺(jué)非常簡(jiǎn)單。GET 請求攜帶一些參數。
Fakeid是公眾號的唯一ID,所以如果想直接通過(guò)名字獲取文章列表,還需要先獲取fakeid。
當我們輸入官方賬號名稱(chēng)時(shí),點(diǎn)擊搜索??梢钥吹剿阉鹘缑姹挥|發(fā),返回fakeid。
這個(gè)接口需要的參數不多。
接下來(lái)我們就可以用代碼來(lái)模擬上面的操作了。
但您還需要使用現有的 cookie 來(lái)避免登錄。
我沒(méi)有測試過(guò)當前cookie的有效期??赡苄枰皶r(shí)更新 cookie。
測試代碼:
import requests
import json
Cookie = '請換上自己的Cookie,獲取方法:直接復制下來(lái)'
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
headers = {
"Cookie": Cookie,
"User-Agent": 'Mozilla/5.0 (Linux; Android 10; YAL-AL00 Build/HUAWEIYAL-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.64 HuaweiBrowser/10.0.1.335 Mobile Safari/537.36'
}
keyword = 'pythonlx' # 公眾號名字:可自定義
token = '你的token' # 獲取方法:如上述 直接復制下來(lái)
search_url = 'https://mp.weixin.qq.com/cgi-b ... ry%3D{}&token={}&lang=zh_CN&f=json&ajax=1'.format(keyword,token)
doc = requests.get(search_url,headers=headers).text
jstext = json.loads(doc)
fakeid = jstext['list'][0]['fakeid']
data = {
"token": token,
"lang": "zh_CN",
"f": "json",
"ajax": "1",
"action": "list_ex",
"begin": 0,
"count": "5",
"query": "",
"fakeid": fakeid,
"type": "9",
}
json_test = requests.get(url, headers=headers, params=data).text
json_test = json.loads(json_test)
print(json_test)
這樣就可以得到最新的10篇文章。如果想獲取更多歷史記錄文章,可以修改數據中的“begin”參數,0為第一頁(yè),5為第二頁(yè),10為第三頁(yè)(以此類(lèi)推)
但是如果你想大規模爬行:
請自己安排一個(gè)穩定的代理,降低爬蟲(chóng)速度,準備多個(gè)賬號,減少被屏蔽的可能性。 查看全部
querylist采集微信公眾號文章(一個(gè)獲取微信公眾號文章的方法,你知道嗎?)
之前是自己維護一個(gè)公眾號,但是因為個(gè)人關(guān)系好久沒(méi)有更新,今天上來(lái)想起來(lái),卻偶然發(fā)現了微信公眾號文章的獲取方式。
之前的獲取方式有很多,通過(guò)搜狗、清博、web、客戶(hù)端等都可以,這個(gè)可能不太好,但是操作簡(jiǎn)單易懂。
所以。首先,您需要在微信公眾平臺上有一個(gè)賬號
微信公眾平臺:

登錄后,進(jìn)入首頁(yè),點(diǎn)擊新建群發(fā)。

選擇自創(chuàng )圖形:

好像是公眾號操作教學(xué)
進(jìn)入編輯頁(yè)面后,點(diǎn)擊超鏈接

彈出一個(gè)選擇框,我們在框中輸入對應的公眾號名稱(chēng),就會(huì )出現對應的文章列表

你驚喜嗎?您可以打開(kāi)控制臺并檢查請求的界面

打開(kāi)回復,里面有我們需要的文章鏈接

確認數據后,我們需要對這個(gè)界面進(jìn)行分析。
感覺(jué)非常簡(jiǎn)單。GET 請求攜帶一些參數。

Fakeid是公眾號的唯一ID,所以如果想直接通過(guò)名字獲取文章列表,還需要先獲取fakeid。
當我們輸入官方賬號名稱(chēng)時(shí),點(diǎn)擊搜索??梢钥吹剿阉鹘缑姹挥|發(fā),返回fakeid。

這個(gè)接口需要的參數不多。

接下來(lái)我們就可以用代碼來(lái)模擬上面的操作了。
但您還需要使用現有的 cookie 來(lái)避免登錄。

我沒(méi)有測試過(guò)當前cookie的有效期??赡苄枰皶r(shí)更新 cookie。
測試代碼:
import requests
import json
Cookie = '請換上自己的Cookie,獲取方法:直接復制下來(lái)'
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
headers = {
"Cookie": Cookie,
"User-Agent": 'Mozilla/5.0 (Linux; Android 10; YAL-AL00 Build/HUAWEIYAL-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.64 HuaweiBrowser/10.0.1.335 Mobile Safari/537.36'
}
keyword = 'pythonlx' # 公眾號名字:可自定義
token = '你的token' # 獲取方法:如上述 直接復制下來(lái)
search_url = 'https://mp.weixin.qq.com/cgi-b ... ry%3D{}&token={}&lang=zh_CN&f=json&ajax=1'.format(keyword,token)
doc = requests.get(search_url,headers=headers).text
jstext = json.loads(doc)
fakeid = jstext['list'][0]['fakeid']
data = {
"token": token,
"lang": "zh_CN",
"f": "json",
"ajax": "1",
"action": "list_ex",
"begin": 0,
"count": "5",
"query": "",
"fakeid": fakeid,
"type": "9",
}
json_test = requests.get(url, headers=headers, params=data).text
json_test = json.loads(json_test)
print(json_test)
這樣就可以得到最新的10篇文章。如果想獲取更多歷史記錄文章,可以修改數據中的“begin”參數,0為第一頁(yè),5為第二頁(yè),10為第三頁(yè)(以此類(lèi)推)
但是如果你想大規模爬行:
請自己安排一個(gè)穩定的代理,降低爬蟲(chóng)速度,準備多個(gè)賬號,減少被屏蔽的可能性。
querylist采集微信公眾號文章(孤狼微信公眾號文章采集主要功能特色介紹! )
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 169 次瀏覽 ? 2021-12-16 11:04
)
孤狼數據采集平臺為微信公眾號文章提供采集,可以方便的發(fā)布到市場(chǎng)主流系統,一些冷門(mén)的網(wǎng)站接口也可以定制!
一、獨狼微信公眾號文章采集主要功能
1.根據公眾號名稱(chēng)或ID,指定公眾號采集,支持輸入多個(gè)公眾號,不限制公眾號數量
2. 多種圖片下載存儲方式(遠程調用、圖片本地化、ftp上傳),解決公眾號防盜鏈問(wèn)題文章
3.強大的數據存儲功能(采集接收到的數據保存在本地數據庫文件中)
4.簡(jiǎn)單的配置可以輕松發(fā)布到主流網(wǎng)站或者api接口
二、微信公眾號文章采集主要步驟
1、創(chuàng )建“添加公眾號”任務(wù)
登錄軟件打開(kāi)左上角“自定義公眾號”,鼠標右鍵添加公眾號框,點(diǎn)擊獲取軟件自動(dòng)獲取公眾號信息,然后添加到群中。
2、填寫(xiě)公眾號名稱(chēng)或ID為采集
填寫(xiě)基本信息如下圖:
只需填寫(xiě)任務(wù)名稱(chēng)和采集的微信公眾號名稱(chēng)或ID即可。提示:可以查看文章的圖片前后自動(dòng)過(guò)濾
使用廣告圖片功能刪除廣告(功能需提前勾選)
使用公眾號標簽
3、設置圖片下載(可選)
由于微信公眾號文章上的圖片經(jīng)過(guò)防盜鏈處理,采集收到的原創(chuàng )圖片無(wú)法正常顯示。如果需要圖片,需要配置圖片下載:
您可以選擇“上傳設置(通過(guò)ftp返回您的服務(wù)器)”或直接遠程調用。
4、開(kāi)始采集
圖片配置好后,可以點(diǎn)擊左上角的“采集”,采集數據:
5、采集 后期數據處理與發(fā)布
啟動(dòng)采集后,總是會(huì )出來(lái)數據采集,文章可以預覽,顯示圖形內容,添加到“任務(wù)列表”頁(yè)面查看:勾選后文章, 選擇發(fā)布任務(wù)
可以分配到一個(gè)類(lèi)別或列;
在任務(wù)列表中,您可以發(fā)布:
最后選擇發(fā)布到自己的系統。如果軟件上現成的界面與你的網(wǎng)站界面匹配,直接填寫(xiě)網(wǎng)址、后臺網(wǎng)址、賬號密碼等,點(diǎn)擊登錄成功。
查看全部
querylist采集微信公眾號文章(孤狼微信公眾號文章采集主要功能特色介紹!
)
孤狼數據采集平臺為微信公眾號文章提供采集,可以方便的發(fā)布到市場(chǎng)主流系統,一些冷門(mén)的網(wǎng)站接口也可以定制!
一、獨狼微信公眾號文章采集主要功能
1.根據公眾號名稱(chēng)或ID,指定公眾號采集,支持輸入多個(gè)公眾號,不限制公眾號數量
2. 多種圖片下載存儲方式(遠程調用、圖片本地化、ftp上傳),解決公眾號防盜鏈問(wèn)題文章
3.強大的數據存儲功能(采集接收到的數據保存在本地數據庫文件中)
4.簡(jiǎn)單的配置可以輕松發(fā)布到主流網(wǎng)站或者api接口
二、微信公眾號文章采集主要步驟
1、創(chuàng )建“添加公眾號”任務(wù)
登錄軟件打開(kāi)左上角“自定義公眾號”,鼠標右鍵添加公眾號框,點(diǎn)擊獲取軟件自動(dòng)獲取公眾號信息,然后添加到群中。

2、填寫(xiě)公眾號名稱(chēng)或ID為采集
填寫(xiě)基本信息如下圖:

只需填寫(xiě)任務(wù)名稱(chēng)和采集的微信公眾號名稱(chēng)或ID即可。提示:可以查看文章的圖片前后自動(dòng)過(guò)濾
使用廣告圖片功能刪除廣告(功能需提前勾選)
使用公眾號標簽
3、設置圖片下載(可選)
由于微信公眾號文章上的圖片經(jīng)過(guò)防盜鏈處理,采集收到的原創(chuàng )圖片無(wú)法正常顯示。如果需要圖片,需要配置圖片下載:

您可以選擇“上傳設置(通過(guò)ftp返回您的服務(wù)器)”或直接遠程調用。
4、開(kāi)始采集
圖片配置好后,可以點(diǎn)擊左上角的“采集”,采集數據:

5、采集 后期數據處理與發(fā)布
啟動(dòng)采集后,總是會(huì )出來(lái)數據采集,文章可以預覽,顯示圖形內容,添加到“任務(wù)列表”頁(yè)面查看:勾選后文章, 選擇發(fā)布任務(wù)

可以分配到一個(gè)類(lèi)別或列;

在任務(wù)列表中,您可以發(fā)布:

最后選擇發(fā)布到自己的系統。如果軟件上現成的界面與你的網(wǎng)站界面匹配,直接填寫(xiě)網(wǎng)址、后臺網(wǎng)址、賬號密碼等,點(diǎn)擊登錄成功。

querylist采集微信公眾號文章(大文本的分詞對接搜狗對搜狗中文分詞工具baiduspider對接)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 139 次瀏覽 ? 2021-12-15 23:07
querylist采集微信公眾號文章,支持微信公眾號文章、自媒體文章、微博文章等。動(dòng)態(tài)切換國內文章及國外的文章。支持采集天貓、京東、拼多多等主流電商平臺的文章。實(shí)現對接coredns及urllib2。大文本的分詞對接搜狗對搜狗中文分詞工具baiduspider,可選擇對接gbk分詞或wa/wa模式。
支持實(shí)現從文本中匹配關(guān)鍵詞并生成目標文章鏈接。支持實(shí)現對接原創(chuàng )保護機制,支持markdown等第三方工具的寫(xiě)作。動(dòng)態(tài)拓展javascript全局變量。實(shí)現更多的功能以及讀取文章、分析文章等。公眾號點(diǎn)贊微信公眾號可以自動(dòng)同步文章,通過(guò)點(diǎn)贊實(shí)現文章分享及編輯。點(diǎn)贊記錄直接存儲在數據庫中。點(diǎn)贊實(shí)現歷史文章自動(dòng)分類(lèi)功能。
獲取文章作者微信公眾號文章作者可以基于文章token來(lái)獲取其值。單篇文章作者的信息實(shí)時(shí)同步到本地服務(wù)器。在文章詳情頁(yè)可以對文章作者進(jìn)行權限設置,用戶(hù)可以設置僅對該作者可見(jiàn)。通過(guò)注冊獲取高級權限,用戶(hù)可以對文章進(jìn)行推薦,被推薦后文章可以通過(guò)頭條、微信、微博三種渠道進(jìn)行展示。文章推薦基于token進(jìn)行流量推薦,推薦準確度提升30%-50%。個(gè)人介紹。
謝邀你是指知乎的話(huà)可以嗎,一開(kāi)始我是想去找的,不過(guò)想了想不如開(kāi)個(gè)主頁(yè),自己推薦。
可以,用weixinjs,用最新版的,就是不知道知乎能不能用。每天可以獲取20個(gè)贊。點(diǎn)贊不多的話(huà)還可以買(mǎi)贊。 查看全部
querylist采集微信公眾號文章(大文本的分詞對接搜狗對搜狗中文分詞工具baiduspider對接)
querylist采集微信公眾號文章,支持微信公眾號文章、自媒體文章、微博文章等。動(dòng)態(tài)切換國內文章及國外的文章。支持采集天貓、京東、拼多多等主流電商平臺的文章。實(shí)現對接coredns及urllib2。大文本的分詞對接搜狗對搜狗中文分詞工具baiduspider,可選擇對接gbk分詞或wa/wa模式。
支持實(shí)現從文本中匹配關(guān)鍵詞并生成目標文章鏈接。支持實(shí)現對接原創(chuàng )保護機制,支持markdown等第三方工具的寫(xiě)作。動(dòng)態(tài)拓展javascript全局變量。實(shí)現更多的功能以及讀取文章、分析文章等。公眾號點(diǎn)贊微信公眾號可以自動(dòng)同步文章,通過(guò)點(diǎn)贊實(shí)現文章分享及編輯。點(diǎn)贊記錄直接存儲在數據庫中。點(diǎn)贊實(shí)現歷史文章自動(dòng)分類(lèi)功能。
獲取文章作者微信公眾號文章作者可以基于文章token來(lái)獲取其值。單篇文章作者的信息實(shí)時(shí)同步到本地服務(wù)器。在文章詳情頁(yè)可以對文章作者進(jìn)行權限設置,用戶(hù)可以設置僅對該作者可見(jiàn)。通過(guò)注冊獲取高級權限,用戶(hù)可以對文章進(jìn)行推薦,被推薦后文章可以通過(guò)頭條、微信、微博三種渠道進(jìn)行展示。文章推薦基于token進(jìn)行流量推薦,推薦準確度提升30%-50%。個(gè)人介紹。
謝邀你是指知乎的話(huà)可以嗎,一開(kāi)始我是想去找的,不過(guò)想了想不如開(kāi)個(gè)主頁(yè),自己推薦。
可以,用weixinjs,用最新版的,就是不知道知乎能不能用。每天可以獲取20個(gè)贊。點(diǎn)贊不多的話(huà)還可以買(mǎi)贊。
querylist采集微信公眾號文章(新媒體編輯者如何采集微信公眾號文章的文章鏈接?)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 122 次瀏覽 ? 2021-12-14 07:26
當我們看到一個(gè)優(yōu)秀的公眾號文章時(shí),如果我們想轉載到我們的公眾號,我們會(huì )直接復制粘貼全文。不過(guò),這種方法雖然簡(jiǎn)單,但實(shí)用性并不強。因為粘貼之后我們會(huì )發(fā)現格式或者樣式經(jīng)常出錯,修改起來(lái)比較困難。
事實(shí)上,這種方法已經(jīng)過(guò)時(shí)了?,F在新媒體編輯經(jīng)常使用一些微信編輯來(lái)幫助處理這類(lèi)問(wèn)題。今天小編就以目前主流的微信編輯器為例,教大家如何采集其他微信公眾號文章到您的微信公眾平臺。
第一步:首先在百度上搜索小螞蟻編輯器,點(diǎn)擊進(jìn)入網(wǎng)址
第二步:點(diǎn)擊采集,將采集的微信文章鏈接地址粘貼到“文章URL”框中
第三步:點(diǎn)擊“采集”,此時(shí)文章的所有內容已經(jīng)采集到微信編輯器,可以編輯修改文章。編輯完后可以點(diǎn)擊旁邊的復制(相當于復制全文),然后粘貼到微信素材編輯的正文中。
ps:這里獲取微信文章鏈接主要有兩種方式:
方法一:直接在手機上找到文章點(diǎn)擊右上角復制
方法二:在小螞蟻編輯器的微信營(yíng)銷(xiāo)工具中搜索熱搜圖文中的素材,直接復制文章上面的網(wǎng)址即可。
,
這個(gè)怎么樣?你有沒(méi)有得到另一個(gè)技能(括號笑)。這只是小螞蟻微信編輯器中的一個(gè)小功能,還收錄了一些常用的功能,如微信圖文提取、微信超鏈接、微信短網(wǎng)址、微信一鍵關(guān)注頁(yè)面等。新媒體數量 編輯喜歡使用它的主要原因。返回搜狐查看更多 查看全部
querylist采集微信公眾號文章(新媒體編輯者如何采集微信公眾號文章的文章鏈接?)
當我們看到一個(gè)優(yōu)秀的公眾號文章時(shí),如果我們想轉載到我們的公眾號,我們會(huì )直接復制粘貼全文。不過(guò),這種方法雖然簡(jiǎn)單,但實(shí)用性并不強。因為粘貼之后我們會(huì )發(fā)現格式或者樣式經(jīng)常出錯,修改起來(lái)比較困難。
事實(shí)上,這種方法已經(jīng)過(guò)時(shí)了?,F在新媒體編輯經(jīng)常使用一些微信編輯來(lái)幫助處理這類(lèi)問(wèn)題。今天小編就以目前主流的微信編輯器為例,教大家如何采集其他微信公眾號文章到您的微信公眾平臺。
第一步:首先在百度上搜索小螞蟻編輯器,點(diǎn)擊進(jìn)入網(wǎng)址

第二步:點(diǎn)擊采集,將采集的微信文章鏈接地址粘貼到“文章URL”框中

第三步:點(diǎn)擊“采集”,此時(shí)文章的所有內容已經(jīng)采集到微信編輯器,可以編輯修改文章。編輯完后可以點(diǎn)擊旁邊的復制(相當于復制全文),然后粘貼到微信素材編輯的正文中。

ps:這里獲取微信文章鏈接主要有兩種方式:
方法一:直接在手機上找到文章點(diǎn)擊右上角復制

方法二:在小螞蟻編輯器的微信營(yíng)銷(xiāo)工具中搜索熱搜圖文中的素材,直接復制文章上面的網(wǎng)址即可。

,

這個(gè)怎么樣?你有沒(méi)有得到另一個(gè)技能(括號笑)。這只是小螞蟻微信編輯器中的一個(gè)小功能,還收錄了一些常用的功能,如微信圖文提取、微信超鏈接、微信短網(wǎng)址、微信一鍵關(guān)注頁(yè)面等。新媒體數量 編輯喜歡使用它的主要原因。返回搜狐查看更多
querylist采集微信公眾號文章(如何抓取微信公眾號的文章內容、閱讀數、點(diǎn)贊數、發(fā)表時(shí)間和作者)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 235 次瀏覽 ? 2021-12-13 14:07
如何抓取微信公眾號的內容、閱讀數、點(diǎn)贊數、發(fā)表時(shí)間和作者?-:拓圖數據可以做到,文章內容、閱讀數、點(diǎn)贊數、發(fā)表時(shí)間和作者可用
如何搶微信公眾號文章-:你是說(shuō)抄襲嗎?手機長(cháng)按,點(diǎn)擊要復制的內容。您可以使用搜狗在電腦上進(jìn)行搜索。有微信欄目,可以搜索微信公眾號,直接搜索你需要的公眾號,電腦上復制粘貼即可
采集微信公眾號文章,如何采集?-:用鍵盤(pán)加速排行。登錄后,在編輯區右側找到導入文章按鈕,然后將文章地址復制進(jìn)去,然后就可以采集下來(lái)了,還是需要在采集之后修改,否則不會(huì )變成原創(chuàng )。
超實(shí)用技巧:如何采集微信公眾號文章-:選對產(chǎn)品很重要!下面是優(yōu)采云軟件智能文章采集系統,你可以了解一、智能區塊算法采集任何內容站點(diǎn),真的傻瓜式< @采集智能塊算法自動(dòng)提取網(wǎng)頁(yè)正文內容,無(wú)需配置源碼規則,真正傻瓜式采集;自動(dòng)去噪,可修正標題內容中的圖片\...
如何抓取微信公眾號發(fā)布的文章的閱讀和點(diǎn)贊數-:思路一,使用rss生成工具將搜狗的微信搜索結果生成一個(gè)rss,然后通過(guò)監控公眾號的文章rss @>更新。(理論上應該是可以的,但我沒(méi)試過(guò)) 思路二,自己做一個(gè)桌面瀏覽器,IE內核。使用此瀏覽器登錄網(wǎng)頁(yè)版微信,此微信號關(guān)注您要抓取的公眾號,因此您可以監控這些公眾號是否有更新,以及更新后鏈接是什么,從而達到目的的數據捕獲。(用過(guò),效率不高,但是很穩定) 思路三,通過(guò)修改Android微信客戶(hù)端實(shí)現(這個(gè)方法我們用了一段時(shí)間) 思路四,
如何采集或爬取微信公眾號文章-:使用ForeSpider數據采集軟件嗅探之前就可以采集微信公眾號文章。是一款可視化萬(wàn)能爬蟲(chóng)軟件。簡(jiǎn)單的配置兩步就可以完成采集,軟件還自帶了一個(gè)免費的數據庫,你可以直接存儲采集。如果不想配置,可以提供配置服務(wù),價(jià)格很便宜。公眾號模板好像可以在軟件里下載。這是免費的。您可以從官方網(wǎng)站下載免費版本進(jìn)行試用。免費版不限制功能。
如何搶采集微信公眾號文章!:難度已達到1),這個(gè)入口地址不固定,一天左右會(huì )變,主要是key值里面。所以,期望通過(guò)人工手動(dòng)抓取一勞永逸獲得的地址沒(méi)有太大的實(shí)用價(jià)值2),這個(gè)入口頁(yè)面對于沒(méi)有關(guān)注的用戶(hù)只能看到第一頁(yè),可以只有關(guān)注后才能看到后續頁(yè)面。后續頁(yè)面只能關(guān)注這個(gè)賬號,但是手動(dòng)關(guān)注多個(gè)賬號的上萬(wàn)粉絲是不現實(shí)的。3),微信對一個(gè)賬號可以關(guān)注的公眾號數量有上限(摘自網(wǎng)絡(luò ))
如何找到公眾號文章采集器?-:鍵盤(pán)喵編輯器可以找到導入文章按鈕,這個(gè)按鈕是復制地址進(jìn)去的,可以放文章@ >采集、采集會(huì )再次出現在編輯區,可以再次編輯。
怎么搶公眾號文章?-:在鍵盤(pán)妙微微信編輯器上找到導入文章按鈕,然后復制文章的鏈接,就可以搶了,然后編輯它自己。
有沒(méi)有采集微信公眾號文章的工具?-:我知道有西瓜助手。西瓜助手是一個(gè)微信素材庫。一鍵查找文章素材采集素材庫可分類(lèi)管理,使用過(guò)的素材會(huì )做標記,整體使用更方便。
相關(guān)視頻:2步教你如何快速抓取音頻素材,如何快速將音頻轉成文本形式,通過(guò)爬蟲(chóng)插件抓取外貿買(mǎi)家郵箱【云之盟】Python爬蟲(chóng)從入門(mén)到精通1688阿里巴巴商家電話(huà)采集軟件的使用方式讓人震驚!學(xué)習Python爬蟲(chóng)后,某網(wǎng)站接單,3天賺了1650元!新華社客戶(hù)端V6.0版上線(xiàn),移動(dòng)信息旗艦瞄準哪些新趨勢可怕!LED廣告屏百米內可獲取您的電話(huà)號碼,每月采集8億個(gè)人數據。如何處理科學(xué)研究中出現的海量數據?高能物理為網(wǎng)絡(luò )視頻提取神器提供了新思路,支持全網(wǎng)任意網(wǎng)頁(yè)。并在國內外,非商業(yè)定位自帶轉換功能!農村的數據同樣豐富!陜西地圖最新版上線(xiàn) 查看全部
querylist采集微信公眾號文章(如何抓取微信公眾號的文章內容、閱讀數、點(diǎn)贊數、發(fā)表時(shí)間和作者)
如何抓取微信公眾號的內容、閱讀數、點(diǎn)贊數、發(fā)表時(shí)間和作者?-:拓圖數據可以做到,文章內容、閱讀數、點(diǎn)贊數、發(fā)表時(shí)間和作者可用
如何搶微信公眾號文章-:你是說(shuō)抄襲嗎?手機長(cháng)按,點(diǎn)擊要復制的內容。您可以使用搜狗在電腦上進(jìn)行搜索。有微信欄目,可以搜索微信公眾號,直接搜索你需要的公眾號,電腦上復制粘貼即可
采集微信公眾號文章,如何采集?-:用鍵盤(pán)加速排行。登錄后,在編輯區右側找到導入文章按鈕,然后將文章地址復制進(jìn)去,然后就可以采集下來(lái)了,還是需要在采集之后修改,否則不會(huì )變成原創(chuàng )。
超實(shí)用技巧:如何采集微信公眾號文章-:選對產(chǎn)品很重要!下面是優(yōu)采云軟件智能文章采集系統,你可以了解一、智能區塊算法采集任何內容站點(diǎn),真的傻瓜式< @采集智能塊算法自動(dòng)提取網(wǎng)頁(yè)正文內容,無(wú)需配置源碼規則,真正傻瓜式采集;自動(dòng)去噪,可修正標題內容中的圖片\...
如何抓取微信公眾號發(fā)布的文章的閱讀和點(diǎn)贊數-:思路一,使用rss生成工具將搜狗的微信搜索結果生成一個(gè)rss,然后通過(guò)監控公眾號的文章rss @>更新。(理論上應該是可以的,但我沒(méi)試過(guò)) 思路二,自己做一個(gè)桌面瀏覽器,IE內核。使用此瀏覽器登錄網(wǎng)頁(yè)版微信,此微信號關(guān)注您要抓取的公眾號,因此您可以監控這些公眾號是否有更新,以及更新后鏈接是什么,從而達到目的的數據捕獲。(用過(guò),效率不高,但是很穩定) 思路三,通過(guò)修改Android微信客戶(hù)端實(shí)現(這個(gè)方法我們用了一段時(shí)間) 思路四,
如何采集或爬取微信公眾號文章-:使用ForeSpider數據采集軟件嗅探之前就可以采集微信公眾號文章。是一款可視化萬(wàn)能爬蟲(chóng)軟件。簡(jiǎn)單的配置兩步就可以完成采集,軟件還自帶了一個(gè)免費的數據庫,你可以直接存儲采集。如果不想配置,可以提供配置服務(wù),價(jià)格很便宜。公眾號模板好像可以在軟件里下載。這是免費的。您可以從官方網(wǎng)站下載免費版本進(jìn)行試用。免費版不限制功能。
如何搶采集微信公眾號文章!:難度已達到1),這個(gè)入口地址不固定,一天左右會(huì )變,主要是key值里面。所以,期望通過(guò)人工手動(dòng)抓取一勞永逸獲得的地址沒(méi)有太大的實(shí)用價(jià)值2),這個(gè)入口頁(yè)面對于沒(méi)有關(guān)注的用戶(hù)只能看到第一頁(yè),可以只有關(guān)注后才能看到后續頁(yè)面。后續頁(yè)面只能關(guān)注這個(gè)賬號,但是手動(dòng)關(guān)注多個(gè)賬號的上萬(wàn)粉絲是不現實(shí)的。3),微信對一個(gè)賬號可以關(guān)注的公眾號數量有上限(摘自網(wǎng)絡(luò ))
如何找到公眾號文章采集器?-:鍵盤(pán)喵編輯器可以找到導入文章按鈕,這個(gè)按鈕是復制地址進(jìn)去的,可以放文章@ >采集、采集會(huì )再次出現在編輯區,可以再次編輯。
怎么搶公眾號文章?-:在鍵盤(pán)妙微微信編輯器上找到導入文章按鈕,然后復制文章的鏈接,就可以搶了,然后編輯它自己。
有沒(méi)有采集微信公眾號文章的工具?-:我知道有西瓜助手。西瓜助手是一個(gè)微信素材庫。一鍵查找文章素材采集素材庫可分類(lèi)管理,使用過(guò)的素材會(huì )做標記,整體使用更方便。
相關(guān)視頻:2步教你如何快速抓取音頻素材,如何快速將音頻轉成文本形式,通過(guò)爬蟲(chóng)插件抓取外貿買(mǎi)家郵箱【云之盟】Python爬蟲(chóng)從入門(mén)到精通1688阿里巴巴商家電話(huà)采集軟件的使用方式讓人震驚!學(xué)習Python爬蟲(chóng)后,某網(wǎng)站接單,3天賺了1650元!新華社客戶(hù)端V6.0版上線(xiàn),移動(dòng)信息旗艦瞄準哪些新趨勢可怕!LED廣告屏百米內可獲取您的電話(huà)號碼,每月采集8億個(gè)人數據。如何處理科學(xué)研究中出現的海量數據?高能物理為網(wǎng)絡(luò )視頻提取神器提供了新思路,支持全網(wǎng)任意網(wǎng)頁(yè)。并在國內外,非商業(yè)定位自帶轉換功能!農村的數據同樣豐富!陜西地圖最新版上線(xiàn)
querylist采集微信公眾號文章(新建微信公眾號采集任務(wù)配置采集結果附錄(一) )
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 137 次瀏覽 ? 2021-12-09 15:03
)
???使用優(yōu)采云采集微信公眾號文章,很簡(jiǎn)單,只需輸入:公眾號ID或姓名或關(guān)鍵詞。
使用步驟:新建一個(gè)微信公眾號采集任務(wù)微信公眾號采集任務(wù)配置采集結果微信文章幾個(gè)采集) 1.新微信公眾號采集任務(wù):
??新增微信公眾號采集任務(wù)入口有兩個(gè):
2.微信公眾號采集任務(wù)配置:
3. 采集結果:
??微信公眾號名稱(chēng)(weixin_name)、公眾號ID(weixin_id)、標題(title)、正文(內容)、發(fā)布日期(pubData)、作者(author)、標簽(tag)、描述(description),可以使用文字截取) 和關(guān)鍵字(keywords);
附錄:(如何獲取公眾號和微信文章零散采集)
我。如何獲取公眾號
??在“公眾號(WeChat ID)”中填寫(xiě)微信帳號名稱(chēng),然后點(diǎn)擊旁邊的“查看公眾號”按鈕即可查看微信ID;
??以“萬(wàn)維網(wǎng)”為例:
二、微信文章隨機采集
??微信文章分片采集一般用于精度采集,用戶(hù)只需輸入微信文章地址采集。
??在微信公眾號文章采集的基本信息頁(yè)面,點(diǎn)擊“手動(dòng)進(jìn)入文章鏈接采集(可選)”按鈕;
??輸入單個(gè)或多個(gè)詳細 URL,每行一個(gè),以 or 開(kāi)頭;
查看全部
querylist采集微信公眾號文章(新建微信公眾號采集任務(wù)配置采集結果附錄(一)
)
???使用優(yōu)采云采集微信公眾號文章,很簡(jiǎn)單,只需輸入:公眾號ID或姓名或關(guān)鍵詞。
使用步驟:新建一個(gè)微信公眾號采集任務(wù)微信公眾號采集任務(wù)配置采集結果微信文章幾個(gè)采集) 1.新微信公眾號采集任務(wù):
??新增微信公眾號采集任務(wù)入口有兩個(gè):

2.微信公眾號采集任務(wù)配置:

3. 采集結果:
??微信公眾號名稱(chēng)(weixin_name)、公眾號ID(weixin_id)、標題(title)、正文(內容)、發(fā)布日期(pubData)、作者(author)、標簽(tag)、描述(description),可以使用文字截取) 和關(guān)鍵字(keywords);

附錄:(如何獲取公眾號和微信文章零散采集)
我。如何獲取公眾號
??在“公眾號(WeChat ID)”中填寫(xiě)微信帳號名稱(chēng),然后點(diǎn)擊旁邊的“查看公眾號”按鈕即可查看微信ID;
??以“萬(wàn)維網(wǎng)”為例:



二、微信文章隨機采集
??微信文章分片采集一般用于精度采集,用戶(hù)只需輸入微信文章地址采集。
??在微信公眾號文章采集的基本信息頁(yè)面,點(diǎn)擊“手動(dòng)進(jìn)入文章鏈接采集(可選)”按鈕;

??輸入單個(gè)或多個(gè)詳細 URL,每行一個(gè),以 or 開(kāi)頭;

querylist采集微信公眾號文章(工業(yè)界用ai的方法做實(shí)驗數據和實(shí)驗的過(guò)程)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 115 次瀏覽 ? 2021-12-08 13:15
querylist采集微信公眾號文章列表,如果要找某個(gè)名稱(chēng)的文章需要列舉數據挖掘領(lǐng)域屬于svm,相當于a-log.機器學(xué)習目前主要是找出中文,但是更多用了機器學(xué)習.
要看你的算法類(lèi)型,如果屬于nlp,基本屬于機器學(xué)習??赡苣阕龅脤?shí)驗在工業(yè)界有用,可是面試,
如果你的實(shí)驗設計不同于工業(yè)界應用的算法,那么工業(yè)界在面試時(shí)可能會(huì )讓你介紹一下實(shí)驗方法,但一般不會(huì )要求你介紹實(shí)驗數據和實(shí)驗過(guò)程。
對于工業(yè)界來(lái)說(shuō),肯定是機器學(xué)習更合適。對于科研來(lái)說(shuō),算法數據,有意義。但人也能學(xué)得會(huì )。
希望樓主有基礎了還有問(wèn)題先查一下,特別是acm競賽還有實(shí)習工作的話(huà),
機器學(xué)習,數據挖掘,統計推斷,感覺(jué)是兩類(lèi)完全不同的東西,放一起比,簡(jiǎn)直笑掉大牙。
不請自來(lái),
哈哈哈我想看看這個(gè)問(wèn)題我沒(méi)多久才有人能答上來(lái)
希望樓主用ai的方法做實(shí)驗,到時(shí)候能多一點(diǎn)信心。具體去哪里做,看具體情況。
后者發(fā)展不受市場(chǎng)影響,更多需要數據和算法背景。兩種是不一樣的。前者從頭計算,優(yōu)勢是一下就能看到,劣勢是太復雜,有的時(shí)候還會(huì )碰到技術(shù)難點(diǎn),很多細節沒(méi)法多想。
兩種方向都做過(guò),推薦后者,工業(yè)界用機器學(xué)習算法的太多了,你能做的東西比他們多太多了,實(shí)驗做多了,看多了,很多時(shí)候比較容易找到用途。并且不管是哪種,其實(shí)都需要一定的數學(xué)功底,所以基礎好的比較好,最后成為某個(gè)細分領(lǐng)域專(zhuān)家還是有可能的。 查看全部
querylist采集微信公眾號文章(工業(yè)界用ai的方法做實(shí)驗數據和實(shí)驗的過(guò)程)
querylist采集微信公眾號文章列表,如果要找某個(gè)名稱(chēng)的文章需要列舉數據挖掘領(lǐng)域屬于svm,相當于a-log.機器學(xué)習目前主要是找出中文,但是更多用了機器學(xué)習.
要看你的算法類(lèi)型,如果屬于nlp,基本屬于機器學(xué)習??赡苣阕龅脤?shí)驗在工業(yè)界有用,可是面試,
如果你的實(shí)驗設計不同于工業(yè)界應用的算法,那么工業(yè)界在面試時(shí)可能會(huì )讓你介紹一下實(shí)驗方法,但一般不會(huì )要求你介紹實(shí)驗數據和實(shí)驗過(guò)程。
對于工業(yè)界來(lái)說(shuō),肯定是機器學(xué)習更合適。對于科研來(lái)說(shuō),算法數據,有意義。但人也能學(xué)得會(huì )。
希望樓主有基礎了還有問(wèn)題先查一下,特別是acm競賽還有實(shí)習工作的話(huà),
機器學(xué)習,數據挖掘,統計推斷,感覺(jué)是兩類(lèi)完全不同的東西,放一起比,簡(jiǎn)直笑掉大牙。
不請自來(lái),
哈哈哈我想看看這個(gè)問(wèn)題我沒(méi)多久才有人能答上來(lái)
希望樓主用ai的方法做實(shí)驗,到時(shí)候能多一點(diǎn)信心。具體去哪里做,看具體情況。
后者發(fā)展不受市場(chǎng)影響,更多需要數據和算法背景。兩種是不一樣的。前者從頭計算,優(yōu)勢是一下就能看到,劣勢是太復雜,有的時(shí)候還會(huì )碰到技術(shù)難點(diǎn),很多細節沒(méi)法多想。
兩種方向都做過(guò),推薦后者,工業(yè)界用機器學(xué)習算法的太多了,你能做的東西比他們多太多了,實(shí)驗做多了,看多了,很多時(shí)候比較容易找到用途。并且不管是哪種,其實(shí)都需要一定的數學(xué)功底,所以基礎好的比較好,最后成為某個(gè)細分領(lǐng)域專(zhuān)家還是有可能的。
querylist采集微信公眾號文章( 數點(diǎn)java和js的主要特點(diǎn)是什么?-八維教育)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 187 次瀏覽 ? 2021-12-08 05:04
數點(diǎn)java和js的主要特點(diǎn)是什么?-八維教育)
<p>本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 這幾天接到任務(wù),需要開(kāi)發(fā)一個(gè)微信榜單的功能,因此需要采集微信公眾號文章的閱讀數,點(diǎn)贊數和評論數,榜單內的微信公眾號有一百多個(gè),每個(gè)月出一次榜單。 <br /> 接到這個(gè)任務(wù),我開(kāi)始研究如何抓取微信閱讀數,點(diǎn)贊數和評論數,通過(guò)大量參考網(wǎng)上的技術(shù)文章,最終確定了我所使用的方案:使用Fiddler進(jìn)行采集 <br /> 本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 第一步:設置Fiddler <br /> <br /> 如圖設置,此處為設置Fiddler支持https
本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 第二步:設置Fiddler腳本 <br /> Fiddler工具打開(kāi)后,選擇Rules ->Customize Rules打開(kāi)Fiddler ScriptEditor編輯器,編輯器如下: <br /> <br /> 這里我們只需要了解OnBeforeResponse方法,本方法為在http請求返回給客戶(hù)端之前執行的方法,我們主要在本方法內進(jìn)行腳本的編寫(xiě)
本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 第三步:選擇性截取responsebody存儲到文本中 <br /> 研究各個(gè)請求,找到返回點(diǎn)贊數與評論的請求,具體請求如圖: <br /> <br /> 然后開(kāi)始在Fiddler ScriptEditor的方法中編寫(xiě)具體的存儲腳本:
// 首先判斷請求域名是否是自己感興趣的,以及URL中是否含有自己感興趣的特征字符串。如果是,則將該請求的URL和QueryString記錄到日志文件 "c:/fiddler-token.log"中。
if (oSession.HostnameIs("mp.weixin.qq.com") && oSession.uriContains("https://mp.weixin.qq.com/mp/getappmsgext")){
var filename = "C:/fiddler-token.log";
var curDate = new Date();
var logContent = "[" + curDate.toLocaleString() + "] " + oSession.PathAndQuery + "\r\n"+oSession.GetResponseBodyAsString()+"\r\n";
var sw : System.IO.StreamWriter;
if (System.IO.File.Exists(filename)){
sw = System.IO.File.AppendText(filename);
sw.Write(logContent);
}
else{
sw = System.IO.File.CreateText(filename);
sw.Write(logContent);
}
sw.Close();
sw.Dispose();
}</p>
這段代碼的作用是存儲文本中閱讀和點(diǎn)贊數相關(guān)的數據,結果如圖:
本文章為lonter首創(chuàng ),僅在csdn平臺發(fā)布,嚴禁轉載
第四步:篡改公眾號文章頁(yè)面的js代碼,讓頁(yè)面按照你的意圖自動(dòng)跳轉
由于這個(gè)功能可能涉及灰色地帶,所以請聲明,不要用它來(lái)做壞事?。?!
我們來(lái)看看公眾號文章的主頁(yè):
很明顯,每個(gè)js腳本都是以script nonce="1007993124"開(kāi)頭,nonce字段是用來(lái)防止xxs的。如果 js 的 nonce 與原創(chuàng )的 nonce 不匹配,則不會(huì )執行 js。因此,需要在腳本中稍微寫(xiě)一下,具體邏輯代碼如圖:
這個(gè)js加載完成后,保存Fiddler ScriptEditor,然后點(diǎn)擊微信公眾號文章,在Fiddler中會(huì )看到如下內容:
然后,當你回來(lái)找頁(yè)面時(shí)會(huì )自動(dòng)跳轉
本文章為lonter首創(chuàng ),僅在csdn平臺發(fā)布,嚴禁轉載
第五步:獲取開(kāi)發(fā)任務(wù)頁(yè)面
我們需要開(kāi)發(fā)一個(gè)微信轉賬頁(yè)面,這個(gè)頁(yè)面會(huì )從后臺獲取一個(gè)微信公眾號文章,然后讓微信瀏覽器打開(kāi)
具體的html如下:
window.onload=function(){
nextdoor();
}
function nextdoor(){
var taskid=GetQueryString("taskid")
var ob={task:taskid};
$.ajax({
type: "POST",
url: "rest/wxCrawler/wxTask",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(ob),
dataType: "json",
success: function (message) {
var url=message.url;
var taskid=message.task;//每個(gè)微信客戶(hù)端的id,這個(gè)id應該在后端自動(dòng)生成
if(url==("http://127.0.0.1:8080/External ... taskid))
{
setTimeout(function(){window.location="http://127.0.0.1:8080/External ... id%3B},10000);
}else
{
//alert(url+"&taskid="+taskid);
window.location=url+"&taskid="+taskid+"#rd";
}
},
error: function (message) {
alert("提交數據失敗");
}
});
}
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)return unescape(r[2]); return null;
}
閱讀刷新中轉頁(yè)面,頁(yè)面正在跳轉中...
如一直刷新本頁(yè)面,則一直等待后臺分配任務(wù)
至于后端接口,我想很多人都可以寫(xiě),我只做一部分:
package test.springmvc;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.mangofactory.swagger.plugin.EnableSwagger;
import com.wordnik.swagger.annotations.ApiOperation;
import net.sf.json.JSONObject;
import test.springmvc.Artmodel.WxTask;
import test.springmvc.redis.JedisUtil;
/**
*
* @author Administrator
*
*/
@Controller
@EnableSwagger
@RequestMapping("/wxCrawler")
public class TopController {
private final static Logger logger = LoggerFactory.getLogger(TopController.class);
JedisUtil ju=new JedisUtil();
@ApiOperation(value = "微信任務(wù)調度接口", notes = "notes", httpMethod = "POST", produces = MediaType.APPLICATION_JSON_VALUE)
@RequestMapping(value = "wxTask", method = RequestMethod.POST)
@ResponseBody
// 使用了@RequestBody,不能在攔截器中,獲得流中的數據,再json轉換,攔截器中,也不清楚數據的類(lèi)型,無(wú)法轉換成java對象
// 只能手動(dòng)調用方法
public String WeixinTask(@RequestBody WxTask wt) {
String task=wt.getTask();
byte[] redisKey= task.getBytes();//隊列名稱(chēng)
byte[] bys=ju.rpop(redisKey);
if(bys==null)
{
JSONObject json=new JSONObject();
json.put("url", "http://127.0.0.1:8080/External ... 2Btask);
json.put("task", task);
return json.toString();
}else
{
String info=new String(bys);
JSONObject json=JSONObject.fromObject(info);
String url=json.getString("url");
url=url.replace("#rd", "");
json.put("url", url);
json.put("task", task);
return json.toString();
}
}
}
這部分java和js的主要特點(diǎn)是可以進(jìn)行多任務(wù)分布式爬蟲(chóng)。至此,全部開(kāi)發(fā)完成
你只需要寫(xiě)幾十萬(wàn)公眾號文章鏈接,然后用微信打開(kāi):8080/Externalservice/test.html?taskid=xxxxxl 這樣的轉賬頁(yè)面,你會(huì )發(fā)現微信瀏覽器一直跳躍時(shí)
本文章為lonter首創(chuàng ),僅在csdn平臺發(fā)布,嚴禁轉載
第六步:解析存儲在 Fiddler 中的文本
<p>package com.crawler.top;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import com.mysql.jdbc.UpdatableResultSet;
import com.util.DBUtil;
import net.sf.json.JSONObject;
/**
* 讀取Fiddler寫(xiě)入的內容,并將結果寫(xiě)入數據庫
* @author Administrator
*
*/
public class ReaderTxt {
DBUtil dbu=new DBUtil();
public static void main(String[] args)
{
ReaderTxt rt=new ReaderTxt();
ArrayList list=rt.InitTxt();
for(int i=0;i 查看全部
querylist采集微信公眾號文章(
數點(diǎn)java和js的主要特點(diǎn)是什么?-八維教育)
<p>本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 這幾天接到任務(wù),需要開(kāi)發(fā)一個(gè)微信榜單的功能,因此需要采集微信公眾號文章的閱讀數,點(diǎn)贊數和評論數,榜單內的微信公眾號有一百多個(gè),每個(gè)月出一次榜單。 <br /> 接到這個(gè)任務(wù),我開(kāi)始研究如何抓取微信閱讀數,點(diǎn)贊數和評論數,通過(guò)大量參考網(wǎng)上的技術(shù)文章,最終確定了我所使用的方案:使用Fiddler進(jìn)行采集 <br /> 本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 第一步:設置Fiddler <br />
本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 第二步:設置Fiddler腳本 <br /> Fiddler工具打開(kāi)后,選擇Rules ->Customize Rules打開(kāi)Fiddler ScriptEditor編輯器,編輯器如下: <br />
本文章為lonter首創(chuàng ),只發(fā)布在csdn平臺,嚴禁轉載 <br /> 第三步:選擇性截取responsebody存儲到文本中 <br /> 研究各個(gè)請求,找到返回點(diǎn)贊數與評論的請求,具體請求如圖: <br />
// 首先判斷請求域名是否是自己感興趣的,以及URL中是否含有自己感興趣的特征字符串。如果是,則將該請求的URL和QueryString記錄到日志文件 "c:/fiddler-token.log"中。
if (oSession.HostnameIs("mp.weixin.qq.com") && oSession.uriContains("https://mp.weixin.qq.com/mp/getappmsgext")){
var filename = "C:/fiddler-token.log";
var curDate = new Date();
var logContent = "[" + curDate.toLocaleString() + "] " + oSession.PathAndQuery + "\r\n"+oSession.GetResponseBodyAsString()+"\r\n";
var sw : System.IO.StreamWriter;
if (System.IO.File.Exists(filename)){
sw = System.IO.File.AppendText(filename);
sw.Write(logContent);
}
else{
sw = System.IO.File.CreateText(filename);
sw.Write(logContent);
}
sw.Close();
sw.Dispose();
}</p>
這段代碼的作用是存儲文本中閱讀和點(diǎn)贊數相關(guān)的數據,結果如圖:
本文章為lonter首創(chuàng ),僅在csdn平臺發(fā)布,嚴禁轉載
第四步:篡改公眾號文章頁(yè)面的js代碼,讓頁(yè)面按照你的意圖自動(dòng)跳轉
由于這個(gè)功能可能涉及灰色地帶,所以請聲明,不要用它來(lái)做壞事?。?!
我們來(lái)看看公眾號文章的主頁(yè):
很明顯,每個(gè)js腳本都是以script nonce="1007993124"開(kāi)頭,nonce字段是用來(lái)防止xxs的。如果 js 的 nonce 與原創(chuàng )的 nonce 不匹配,則不會(huì )執行 js。因此,需要在腳本中稍微寫(xiě)一下,具體邏輯代碼如圖:
這個(gè)js加載完成后,保存Fiddler ScriptEditor,然后點(diǎn)擊微信公眾號文章,在Fiddler中會(huì )看到如下內容:
然后,當你回來(lái)找頁(yè)面時(shí)會(huì )自動(dòng)跳轉
本文章為lonter首創(chuàng ),僅在csdn平臺發(fā)布,嚴禁轉載
第五步:獲取開(kāi)發(fā)任務(wù)頁(yè)面
我們需要開(kāi)發(fā)一個(gè)微信轉賬頁(yè)面,這個(gè)頁(yè)面會(huì )從后臺獲取一個(gè)微信公眾號文章,然后讓微信瀏覽器打開(kāi)
具體的html如下:
window.onload=function(){
nextdoor();
}
function nextdoor(){
var taskid=GetQueryString("taskid")
var ob={task:taskid};
$.ajax({
type: "POST",
url: "rest/wxCrawler/wxTask",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(ob),
dataType: "json",
success: function (message) {
var url=message.url;
var taskid=message.task;//每個(gè)微信客戶(hù)端的id,這個(gè)id應該在后端自動(dòng)生成
if(url==("http://127.0.0.1:8080/External ... taskid))
{
setTimeout(function(){window.location="http://127.0.0.1:8080/External ... id%3B},10000);
}else
{
//alert(url+"&taskid="+taskid);
window.location=url+"&taskid="+taskid+"#rd";
}
},
error: function (message) {
alert("提交數據失敗");
}
});
}
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)return unescape(r[2]); return null;
}
閱讀刷新中轉頁(yè)面,頁(yè)面正在跳轉中...
如一直刷新本頁(yè)面,則一直等待后臺分配任務(wù)
至于后端接口,我想很多人都可以寫(xiě),我只做一部分:
package test.springmvc;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.mangofactory.swagger.plugin.EnableSwagger;
import com.wordnik.swagger.annotations.ApiOperation;
import net.sf.json.JSONObject;
import test.springmvc.Artmodel.WxTask;
import test.springmvc.redis.JedisUtil;
/**
*
* @author Administrator
*
*/
@Controller
@EnableSwagger
@RequestMapping("/wxCrawler")
public class TopController {
private final static Logger logger = LoggerFactory.getLogger(TopController.class);
JedisUtil ju=new JedisUtil();
@ApiOperation(value = "微信任務(wù)調度接口", notes = "notes", httpMethod = "POST", produces = MediaType.APPLICATION_JSON_VALUE)
@RequestMapping(value = "wxTask", method = RequestMethod.POST)
@ResponseBody
// 使用了@RequestBody,不能在攔截器中,獲得流中的數據,再json轉換,攔截器中,也不清楚數據的類(lèi)型,無(wú)法轉換成java對象
// 只能手動(dòng)調用方法
public String WeixinTask(@RequestBody WxTask wt) {
String task=wt.getTask();
byte[] redisKey= task.getBytes();//隊列名稱(chēng)
byte[] bys=ju.rpop(redisKey);
if(bys==null)
{
JSONObject json=new JSONObject();
json.put("url", "http://127.0.0.1:8080/External ... 2Btask);
json.put("task", task);
return json.toString();
}else
{
String info=new String(bys);
JSONObject json=JSONObject.fromObject(info);
String url=json.getString("url");
url=url.replace("#rd", "");
json.put("url", url);
json.put("task", task);
return json.toString();
}
}
}
這部分java和js的主要特點(diǎn)是可以進(jìn)行多任務(wù)分布式爬蟲(chóng)。至此,全部開(kāi)發(fā)完成
你只需要寫(xiě)幾十萬(wàn)公眾號文章鏈接,然后用微信打開(kāi):8080/Externalservice/test.html?taskid=xxxxxl 這樣的轉賬頁(yè)面,你會(huì )發(fā)現微信瀏覽器一直跳躍時(shí)
本文章為lonter首創(chuàng ),僅在csdn平臺發(fā)布,嚴禁轉載
第六步:解析存儲在 Fiddler 中的文本
<p>package com.crawler.top;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import com.mysql.jdbc.UpdatableResultSet;
import com.util.DBUtil;
import net.sf.json.JSONObject;
/**
* 讀取Fiddler寫(xiě)入的內容,并將結果寫(xiě)入數據庫
* @author Administrator
*
*/
public class ReaderTxt {
DBUtil dbu=new DBUtil();
public static void main(String[] args)
{
ReaderTxt rt=new ReaderTxt();
ArrayList list=rt.InitTxt();
for(int i=0;i
querylist采集微信公眾號文章(Python微信公眾號文章爬取一.思路我們通過(guò)網(wǎng)頁(yè)版)
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 149 次瀏覽 ? 2021-12-04 23:01
Python微信公眾號文章抓取
一.思考
我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
從界面我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
二. 接口分析
微信公眾號獲取界面:
范圍:
行動(dòng)=search_biz
開(kāi)始=0
計數=5
查詢(xún)=官方帳號名稱(chēng)
token=每個(gè)賬戶(hù)對應的token值
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。
獲取對應公眾號文章的界面:
范圍:
動(dòng)作=list_ex
開(kāi)始=0
計數=5
fakeid=MjM5NDAwMTA2MA==
類(lèi)型=9
查詢(xún)=
令牌=557131216
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以獲取到微信公眾號文章的數據了。
三.實(shí)現第一步:
首先我們需要通過(guò)selenium模擬登錄,然后獲取cookie和對應的token
def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get('https://mp.weixin.qq.com/')
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name='account']")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name='password']")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class='btn_login']").click()
sleep(2)
# 微信登錄驗證
print('請掃描二維碼')
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get('https://mp.weixin.qq.com/')
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item['name']] = item['value']
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open('cookie.txt', 'w+', encoding='utf-8') as f:
f.write(cookie_str)
print('cookie保存到本地成功')
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split('?')[1].split('&')
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split('=')[0]] = item.split('=')[1]
# 返回token
return paramdict['token']
定義了一個(gè)登錄方法,里面的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù),輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,用登錄微信掃一掃即可。
刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token,然后返回。
第二步:1.請求對應的公眾號接口,得到我們需要的fakeid
url = 'https://mp.weixin.qq.com'
headers = {
'HOST': 'mp.weixin.qq.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'
}
with open('cookie.txt', 'r', encoding='utf-8') as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = 'https://mp.weixin.qq.com/cgi-b ... 39%3B
params = {
'action': 'search_biz',
'begin': '0',
'count': '5',
'query': '搜索的公眾號名稱(chēng)',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
傳入我們獲取到的token和cookie,然后通過(guò)requests.get請求獲取返回的微信公眾號的json數據
lists = search_resp.json().get('list')[0]
通過(guò)上面的代碼可以得到對應的公眾號數據
fakeid = lists.get('fakeid')
通過(guò)上面的代碼可以得到對應的fakeid
2.請求獲取微信公眾號文章接口,獲取我們需要的數據文章
appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'
params_data = {
'action': 'list_ex',
'begin': '0',
'count': '5',
'fakeid': fakeid,
'type': '9',
'query': '',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
我們傳入fakeid和token,然后調用requests.get請求接口獲取返回的json數據。
我們已經(jīng)實(shí)現了對微信公眾號文章的抓取。
四.總結
通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,當我們在循環(huán)中獲取文章時(shí),一定要設置延遲時(shí)間,否則賬號很容易被封,獲取不到返回的數據。 查看全部
querylist采集微信公眾號文章(Python微信公眾號文章爬取一.思路我們通過(guò)網(wǎng)頁(yè)版)
Python微信公眾號文章抓取
一.思考
我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面


從界面我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
二. 接口分析
微信公眾號獲取界面:
范圍:
行動(dòng)=search_biz
開(kāi)始=0
計數=5
查詢(xún)=官方帳號名稱(chēng)
token=每個(gè)賬戶(hù)對應的token值
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。

獲取對應公眾號文章的界面:
范圍:
動(dòng)作=list_ex
開(kāi)始=0
計數=5
fakeid=MjM5NDAwMTA2MA==
類(lèi)型=9
查詢(xún)=
令牌=557131216
lang=zh_CN
f=json
阿賈克斯=1
請求方式:
得到
在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以獲取到微信公眾號文章的數據了。

三.實(shí)現第一步:
首先我們需要通過(guò)selenium模擬登錄,然后獲取cookie和對應的token
def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get('https://mp.weixin.qq.com/')
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name='account']")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name='password']")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class='btn_login']").click()
sleep(2)
# 微信登錄驗證
print('請掃描二維碼')
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get('https://mp.weixin.qq.com/')
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item['name']] = item['value']
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open('cookie.txt', 'w+', encoding='utf-8') as f:
f.write(cookie_str)
print('cookie保存到本地成功')
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split('?')[1].split('&')
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split('=')[0]] = item.split('=')[1]
# 返回token
return paramdict['token']
定義了一個(gè)登錄方法,里面的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù),輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,用登錄微信掃一掃即可。
刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token,然后返回。
第二步:1.請求對應的公眾號接口,得到我們需要的fakeid
url = 'https://mp.weixin.qq.com'
headers = {
'HOST': 'mp.weixin.qq.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'
}
with open('cookie.txt', 'r', encoding='utf-8') as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = 'https://mp.weixin.qq.com/cgi-b ... 39%3B
params = {
'action': 'search_biz',
'begin': '0',
'count': '5',
'query': '搜索的公眾號名稱(chēng)',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
傳入我們獲取到的token和cookie,然后通過(guò)requests.get請求獲取返回的微信公眾號的json數據
lists = search_resp.json().get('list')[0]
通過(guò)上面的代碼可以得到對應的公眾號數據
fakeid = lists.get('fakeid')
通過(guò)上面的代碼可以得到對應的fakeid
2.請求獲取微信公眾號文章接口,獲取我們需要的數據文章
appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'
params_data = {
'action': 'list_ex',
'begin': '0',
'count': '5',
'fakeid': fakeid,
'type': '9',
'query': '',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
我們傳入fakeid和token,然后調用requests.get請求接口獲取返回的json數據。
我們已經(jīng)實(shí)現了對微信公眾號文章的抓取。
四.總結
通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,當我們在循環(huán)中獲取文章時(shí),一定要設置延遲時(shí)間,否則賬號很容易被封,獲取不到返回的數據。
querylist采集微信公眾號文章(如何實(shí)現每天爬取微信公眾號的推送文章(二))
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 122 次瀏覽 ? 2021-12-02 01:09
Part 2文章:python爬蟲(chóng)如何抓取微信公眾號文章(二)
接下來(lái)是如何連接python爬蟲(chóng)實(shí)現每天爬取微信公眾號的推送文章
因為最近在法庭實(shí)習,需要一些公眾號資料,然后做成網(wǎng)頁(yè)展示,方便查看。之前寫(xiě)過(guò)一些爬蟲(chóng),但都是爬網(wǎng)站數據。這次覺(jué)得太容易了,但是遇到了很多麻煩,在這里分享給大家。
1、 使用爬蟲(chóng)爬取數據最基本也是最重要的就是找到目標網(wǎng)站的url地址,然后遍歷地址一個(gè)一個(gè)或者多個(gè)爬取線(xiàn)程。一般后續的爬取地址主要是通過(guò)兩種方式獲取,一種是根據頁(yè)面分頁(yè)計算url地址的規律,通常后跟參數page=num,另一種是過(guò)濾掉標簽取當前頁(yè)面的url作為后續的爬取地址。遺憾的是,這兩種方法都不能在微信公眾號中使用。原因是公眾號的文章地址之間沒(méi)有關(guān)聯(lián),不可能通過(guò)文章的地址找到所有的文章@。 >地址。
2、那我們如何獲取公眾號的歷史文章地址呢?一種方法是通過(guò)搜狗微信網(wǎng)站搜索目標公眾號,可以看到最近的文章,但只是最近的,無(wú)法獲取歷史記錄文章 @>。如果你想做一個(gè)每日爬蟲(chóng),你可以用這個(gè)方法每天爬取一篇文章。圖片是這樣的:
3、當然需要的結果還有很多,所以還是得想辦法把所有的歷史文本都弄出來(lái),廢話(huà)少說(shuō),切入正題:
首先要注冊一個(gè)微信公眾號(訂閱號),可以注冊個(gè)人,比較簡(jiǎn)單,步驟網(wǎng)上都有,這里就不介紹了。 (如果您之前有過(guò),則無(wú)需注冊)
注冊后,登錄微信公眾平臺,在首頁(yè)左欄的管理下,有一個(gè)素材管理,如圖:
點(diǎn)擊素材管理,然后選擇圖文信息,然后點(diǎn)擊右側新建圖文素材:
轉到新頁(yè)面并單擊頂部的超鏈接:
然后在彈出的窗口中選擇Find文章,輸入你要爬取的公眾號名稱(chēng),搜索:
然后點(diǎn)擊搜索到的公眾號,可以看到它的全部歷史記錄文章:
4、找到歷史記錄后文章,我們如何編寫(xiě)一個(gè)程序來(lái)獲取所有的URL地址? , 首先我們來(lái)分析一下瀏覽器在點(diǎn)擊公眾號名稱(chēng)時(shí)做了什么,調出查看頁(yè)面,點(diǎn)擊網(wǎng)絡(luò ),先清除所有數據,然后點(diǎn)擊目標公眾號,可以看到如下界面:
點(diǎn)擊字符串后,再點(diǎn)擊標題:
找到將軍。這里的Request Url就是我們的程序需要請求的地址格式。我們需要把它拼接起來(lái)。里面的參數在下面的Query String Parameters里面比較清楚:
這些參數的含義很容易理解。唯一需要說(shuō)明的是,fakeid 是公眾號的唯一標識。每個(gè)公眾號都不一樣。如果爬取其他公眾號,只需要修改這個(gè)參數即可。隨機可以省略。
另外一個(gè)重要的部分是Request Headers,里面收錄了cookie、User-Agent等重要信息,在下面的代碼中會(huì )用到:
5、 經(jīng)過(guò)以上分析,就可以開(kāi)始寫(xiě)代碼了。
需要的第一個(gè)參數:
#目標urlurl = "./cgi-bin/appmsg"#使用cookies,跳過(guò)登錄操作headers = {"Cookie": "ua_id=YF6RyP41YQa2QyQHAAAAAGXPy_he8M8KkNCUbRx0cVU=; pgv_pvi=232_5880d9800000; = 3231163757;門(mén)票= 5bd41c51e53cfce785e5c188f94240aac8fad8e3; TICKET_ID = gh_d5e73af61440;證書(shū)= bVSKoAHHVIldcRZp10_fd7p2aTEXrTi6; noticeLoginFlag = 1; remember_acct = mf1832192%; data_bizuin = 3231163757; data_ticket = XKgzAcTceBFDNN6cFXa4TZAVMlMlxhorD7A0r3vzCDkS ++ pgSpr55NFkQIN3N + / v; slave_sid = bU0yeTNOS2VxcEg5RktUQlZhd2xheVc5bjhoQTVhOHdhMnN2SlVIZGRtU3hvVXJpTWdWakVqcHowd3RuVF9HY19Udm1PbVpQMGVfcnhHVGJQQTVzckpQY042QlZZbnJzel9oam5SdjRFR0tGc0c1eExKQU9ybjgxVnZVZVBtSmVnc29ZcUJWVmNWWEFEaGtk; slave_user = gh_d5e73af61440; XID = 93074c5a87a2e98ddb9e527aa204d0c7; openid2ticket_obaWXwJGb9VV9FiHPMcNq7OZzlzY = lw6SBHGUDQf1lFHqOeShfg39SU7awJMxhDVb4AbVXJM =; mm_lang = zh_CN的 “” 用戶(hù)代理 “:” 的Mozilla / 5
0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36",}data = { "token": "1378111188", "lang ": "zh_CN", "f": "json", "ajax": "1", "action": "list_ex", "begin": "0", "count ": "5", "query": "", "fakeid": "MzU5MDUzMTk5Nw==", "type": "9",}
根據自己的cookie和token進(jìn)行修改,然后發(fā)送請求獲取響應,去掉每篇文章的title和url文章,代碼如下:
content_list = []for i in range(20): data["begin"] = i*5 time.sleep(3) # 使用get方法提交 content_json = requests.get ( url, headers=headers, params=data).json() # 返回一個(gè)json,里面收錄content_json["app_msg_list"]中item每頁(yè)的數據:#提取每頁(yè)的標題和對應文章@ > url items = [] items.append(item["title"]) items.append(item["link"]) content_list.append(items)
第一個(gè) for 循環(huán)是抓取的頁(yè)面數。首先需要看好公眾號文章列表中的總頁(yè)數。這個(gè)數字只能小于頁(yè)數。更改數據["begin"],表示從前幾條開(kāi)始,每次5條,注意爬取太多和太頻繁,否則會(huì )被ip和cookies攔截,嚴重的會(huì )被公眾號被屏蔽了。
然后按如下方式保存標題和網(wǎng)址:
name=["title","link"]test=pd.DataFrame(columns=name,data=content_list)test.to_csv("XXX.csv",mode="a",encoding="utf-8 ")print("保存成功")
完整的程序如下:
# -*- coding: utf-8 -*-import requestsimport timeimport csvimport pandas as pd# Target urlurl = "./cgi-bin/appmsg"# 使用cookies跳過(guò)登錄操作 headers = { “曲奇”:“ua_id = YF6RyP41YQa2QyQHAAAAAGXPy_he8M8KkNCUbRx0cVU =; pgv_pvi = 2045358080; pgv_si = s4132856832; UUID = 48da56b488e5c697909a13dfac91a819; bizuin = 3231163757;門(mén)票= 5bd41c51e53cfce785e5c188f94240aac8fad8e3; TICKET_ID = gh_d5e73af61440;證書(shū)= bVSKoAHHVIldcRZp10_fd7p2aTEXrTi6; noticeLoginFlag = 1; remember_acct = mf1832192%40smail.nju。 ; data_bizuin = 3231163757; data_ticket = XKgzAcTceBFDNN6cFXa4TZAVMlMlxhorD7A0r3vzCDkS ++ pgSpr55NFkQIN3N + / v; slave_sid = bU0yeTNOS2VxcEg5RktUQlZhd2xheVc5bjhoQTVhOHdhMnN2SlVIZGRtU3hvVXJpTWdWakVqcHowd3RuVF9HY19Udm1PbVpQMGVfcnhHVGJQQTVzckpQY042QlZZbnJzel9oam5SdjRFR0tGc0c1eExKQU9ybjgxVnZVZVBtSmVnc29ZcUJWVmNWWEFEaGtk; slave_user = gh_d5e73af61440; XID = 93074c5a87a2e98ddb9e527aa204d0c7; openid2ticket_obaWXwJGb9VV9FiHPMcNq7OZzlzY = lw6SBHGUDQf1lFHqOeShfg39S U7awJMxhDVb4AbVXJM =; mm_lang = zh_CN "," User-Agent ":" Mozilla / 5 .
0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36",}data = { "token": "1378111188", "lang ": "zh_CN", "f": "json", "ajax": "1", "action": "list_ex", "begin": "0", "count ": "5", "query": "", "fakeid": "MzU5MDUzMTk5Nw==", "type": "9",}content_list = []for i in range(20): data[ "begin"] = i*5 time. sleep(3) # 使用get方法提交 content_json = requests.get(url, headers=headers, params=data).json() # 返回一個(gè)json,里面是item中的每個(gè)頁(yè)面的數據content_json["app_msg_list"]: # 提取每個(gè)頁(yè)面的標題文章和對應的url items = [] items.
append(item["title"]) 項。追加(項目[“鏈接”])內容列表。 append(items) print(i)name=["title","link"]test=pd.數據幀(列=名稱(chēng),數據=內容列表)測試。 to_csv("xingzhengzhifa.csv",mode="a",encoding="utf-8")print("保存成功")
最后保存的文件如圖:
獲取每個(gè)文章的url后,就可以遍歷爬取每個(gè)文章的內容。爬取文章內容的部分將在下面的博客中介紹。
補充內容:
關(guān)于如何從小伙伴那里獲取封面圖片和摘要的問(wèn)題,查看瀏覽器可以看到返回的json數據中收錄了很多信息,包括封面圖片和摘要
只需要 items.append(item["digest"]) 來(lái)保存 文章 摘要。其他字段如發(fā)布時(shí)間可獲取。
關(guān)于獲取閱讀數和點(diǎn)贊數的問(wèn)題,沒(méi)有辦法通過(guò)本題的方法搞定,因為網(wǎng)頁(yè)上的公眾號文章沒(méi)有數字閱讀量和點(diǎn)贊數。這需要電腦版??梢允褂米グぞ攉@取微信或手機版微信。
關(guān)于ip代理,統計頁(yè)數,多次保存,我在公眾號文章中介紹過(guò),有需要的可以看看 查看全部
querylist采集微信公眾號文章(如何實(shí)現每天爬取微信公眾號的推送文章(二))
Part 2文章:python爬蟲(chóng)如何抓取微信公眾號文章(二)
接下來(lái)是如何連接python爬蟲(chóng)實(shí)現每天爬取微信公眾號的推送文章
因為最近在法庭實(shí)習,需要一些公眾號資料,然后做成網(wǎng)頁(yè)展示,方便查看。之前寫(xiě)過(guò)一些爬蟲(chóng),但都是爬網(wǎng)站數據。這次覺(jué)得太容易了,但是遇到了很多麻煩,在這里分享給大家。
1、 使用爬蟲(chóng)爬取數據最基本也是最重要的就是找到目標網(wǎng)站的url地址,然后遍歷地址一個(gè)一個(gè)或者多個(gè)爬取線(xiàn)程。一般后續的爬取地址主要是通過(guò)兩種方式獲取,一種是根據頁(yè)面分頁(yè)計算url地址的規律,通常后跟參數page=num,另一種是過(guò)濾掉標簽取當前頁(yè)面的url作為后續的爬取地址。遺憾的是,這兩種方法都不能在微信公眾號中使用。原因是公眾號的文章地址之間沒(méi)有關(guān)聯(lián),不可能通過(guò)文章的地址找到所有的文章@。 >地址。
2、那我們如何獲取公眾號的歷史文章地址呢?一種方法是通過(guò)搜狗微信網(wǎng)站搜索目標公眾號,可以看到最近的文章,但只是最近的,無(wú)法獲取歷史記錄文章 @>。如果你想做一個(gè)每日爬蟲(chóng),你可以用這個(gè)方法每天爬取一篇文章。圖片是這樣的:
3、當然需要的結果還有很多,所以還是得想辦法把所有的歷史文本都弄出來(lái),廢話(huà)少說(shuō),切入正題:
首先要注冊一個(gè)微信公眾號(訂閱號),可以注冊個(gè)人,比較簡(jiǎn)單,步驟網(wǎng)上都有,這里就不介紹了。 (如果您之前有過(guò),則無(wú)需注冊)
注冊后,登錄微信公眾平臺,在首頁(yè)左欄的管理下,有一個(gè)素材管理,如圖:
點(diǎn)擊素材管理,然后選擇圖文信息,然后點(diǎn)擊右側新建圖文素材:
轉到新頁(yè)面并單擊頂部的超鏈接:
然后在彈出的窗口中選擇Find文章,輸入你要爬取的公眾號名稱(chēng),搜索:
然后點(diǎn)擊搜索到的公眾號,可以看到它的全部歷史記錄文章:
4、找到歷史記錄后文章,我們如何編寫(xiě)一個(gè)程序來(lái)獲取所有的URL地址? , 首先我們來(lái)分析一下瀏覽器在點(diǎn)擊公眾號名稱(chēng)時(shí)做了什么,調出查看頁(yè)面,點(diǎn)擊網(wǎng)絡(luò ),先清除所有數據,然后點(diǎn)擊目標公眾號,可以看到如下界面:
點(diǎn)擊字符串后,再點(diǎn)擊標題:
找到將軍。這里的Request Url就是我們的程序需要請求的地址格式。我們需要把它拼接起來(lái)。里面的參數在下面的Query String Parameters里面比較清楚:
這些參數的含義很容易理解。唯一需要說(shuō)明的是,fakeid 是公眾號的唯一標識。每個(gè)公眾號都不一樣。如果爬取其他公眾號,只需要修改這個(gè)參數即可。隨機可以省略。
另外一個(gè)重要的部分是Request Headers,里面收錄了cookie、User-Agent等重要信息,在下面的代碼中會(huì )用到:
5、 經(jīng)過(guò)以上分析,就可以開(kāi)始寫(xiě)代碼了。
需要的第一個(gè)參數:
#目標urlurl = "./cgi-bin/appmsg"#使用cookies,跳過(guò)登錄操作headers = {"Cookie": "ua_id=YF6RyP41YQa2QyQHAAAAAGXPy_he8M8KkNCUbRx0cVU=; pgv_pvi=232_5880d9800000; = 3231163757;門(mén)票= 5bd41c51e53cfce785e5c188f94240aac8fad8e3; TICKET_ID = gh_d5e73af61440;證書(shū)= bVSKoAHHVIldcRZp10_fd7p2aTEXrTi6; noticeLoginFlag = 1; remember_acct = mf1832192%; data_bizuin = 3231163757; data_ticket = XKgzAcTceBFDNN6cFXa4TZAVMlMlxhorD7A0r3vzCDkS ++ pgSpr55NFkQIN3N + / v; slave_sid = bU0yeTNOS2VxcEg5RktUQlZhd2xheVc5bjhoQTVhOHdhMnN2SlVIZGRtU3hvVXJpTWdWakVqcHowd3RuVF9HY19Udm1PbVpQMGVfcnhHVGJQQTVzckpQY042QlZZbnJzel9oam5SdjRFR0tGc0c1eExKQU9ybjgxVnZVZVBtSmVnc29ZcUJWVmNWWEFEaGtk; slave_user = gh_d5e73af61440; XID = 93074c5a87a2e98ddb9e527aa204d0c7; openid2ticket_obaWXwJGb9VV9FiHPMcNq7OZzlzY = lw6SBHGUDQf1lFHqOeShfg39SU7awJMxhDVb4AbVXJM =; mm_lang = zh_CN的 “” 用戶(hù)代理 “:” 的Mozilla / 5
0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36",}data = { "token": "1378111188", "lang ": "zh_CN", "f": "json", "ajax": "1", "action": "list_ex", "begin": "0", "count ": "5", "query": "", "fakeid": "MzU5MDUzMTk5Nw==", "type": "9",}
根據自己的cookie和token進(jìn)行修改,然后發(fā)送請求獲取響應,去掉每篇文章的title和url文章,代碼如下:
content_list = []for i in range(20): data["begin"] = i*5 time.sleep(3) # 使用get方法提交 content_json = requests.get ( url, headers=headers, params=data).json() # 返回一個(gè)json,里面收錄content_json["app_msg_list"]中item每頁(yè)的數據:#提取每頁(yè)的標題和對應文章@ > url items = [] items.append(item["title"]) items.append(item["link"]) content_list.append(items)
第一個(gè) for 循環(huán)是抓取的頁(yè)面數。首先需要看好公眾號文章列表中的總頁(yè)數。這個(gè)數字只能小于頁(yè)數。更改數據["begin"],表示從前幾條開(kāi)始,每次5條,注意爬取太多和太頻繁,否則會(huì )被ip和cookies攔截,嚴重的會(huì )被公眾號被屏蔽了。
然后按如下方式保存標題和網(wǎng)址:
name=["title","link"]test=pd.DataFrame(columns=name,data=content_list)test.to_csv("XXX.csv",mode="a",encoding="utf-8 ")print("保存成功")
完整的程序如下:
# -*- coding: utf-8 -*-import requestsimport timeimport csvimport pandas as pd# Target urlurl = "./cgi-bin/appmsg"# 使用cookies跳過(guò)登錄操作 headers = { “曲奇”:“ua_id = YF6RyP41YQa2QyQHAAAAAGXPy_he8M8KkNCUbRx0cVU =; pgv_pvi = 2045358080; pgv_si = s4132856832; UUID = 48da56b488e5c697909a13dfac91a819; bizuin = 3231163757;門(mén)票= 5bd41c51e53cfce785e5c188f94240aac8fad8e3; TICKET_ID = gh_d5e73af61440;證書(shū)= bVSKoAHHVIldcRZp10_fd7p2aTEXrTi6; noticeLoginFlag = 1; remember_acct = mf1832192%40smail.nju。 ; data_bizuin = 3231163757; data_ticket = XKgzAcTceBFDNN6cFXa4TZAVMlMlxhorD7A0r3vzCDkS ++ pgSpr55NFkQIN3N + / v; slave_sid = bU0yeTNOS2VxcEg5RktUQlZhd2xheVc5bjhoQTVhOHdhMnN2SlVIZGRtU3hvVXJpTWdWakVqcHowd3RuVF9HY19Udm1PbVpQMGVfcnhHVGJQQTVzckpQY042QlZZbnJzel9oam5SdjRFR0tGc0c1eExKQU9ybjgxVnZVZVBtSmVnc29ZcUJWVmNWWEFEaGtk; slave_user = gh_d5e73af61440; XID = 93074c5a87a2e98ddb9e527aa204d0c7; openid2ticket_obaWXwJGb9VV9FiHPMcNq7OZzlzY = lw6SBHGUDQf1lFHqOeShfg39S U7awJMxhDVb4AbVXJM =; mm_lang = zh_CN "," User-Agent ":" Mozilla / 5 .
0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36",}data = { "token": "1378111188", "lang ": "zh_CN", "f": "json", "ajax": "1", "action": "list_ex", "begin": "0", "count ": "5", "query": "", "fakeid": "MzU5MDUzMTk5Nw==", "type": "9",}content_list = []for i in range(20): data[ "begin"] = i*5 time. sleep(3) # 使用get方法提交 content_json = requests.get(url, headers=headers, params=data).json() # 返回一個(gè)json,里面是item中的每個(gè)頁(yè)面的數據content_json["app_msg_list"]: # 提取每個(gè)頁(yè)面的標題文章和對應的url items = [] items.
append(item["title"]) 項。追加(項目[“鏈接”])內容列表。 append(items) print(i)name=["title","link"]test=pd.數據幀(列=名稱(chēng),數據=內容列表)測試。 to_csv("xingzhengzhifa.csv",mode="a",encoding="utf-8")print("保存成功")
最后保存的文件如圖:
獲取每個(gè)文章的url后,就可以遍歷爬取每個(gè)文章的內容。爬取文章內容的部分將在下面的博客中介紹。
補充內容:
關(guān)于如何從小伙伴那里獲取封面圖片和摘要的問(wèn)題,查看瀏覽器可以看到返回的json數據中收錄了很多信息,包括封面圖片和摘要
只需要 items.append(item["digest"]) 來(lái)保存 文章 摘要。其他字段如發(fā)布時(shí)間可獲取。
關(guān)于獲取閱讀數和點(diǎn)贊數的問(wèn)題,沒(méi)有辦法通過(guò)本題的方法搞定,因為網(wǎng)頁(yè)上的公眾號文章沒(méi)有數字閱讀量和點(diǎn)贊數。這需要電腦版??梢允褂米グぞ攉@取微信或手機版微信。
關(guān)于ip代理,統計頁(yè)數,多次保存,我在公眾號文章中介紹過(guò),有需要的可以看看