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

querylist采集微信公眾號文章

querylist采集微信公眾號文章

querylist采集微信公眾號文章(微信自帶的瀏覽器有擴展你為什么不用呢?)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 138 次瀏覽 ? 2021-11-29 02:02 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信自帶的瀏覽器有擴展你為什么不用呢?)
  querylist采集微信公眾號文章素材。截圖有加載時(shí)間問(wèn)題,騰訊會(huì )給微信文章分段,所以你才看不到“離線(xiàn)”和“離線(xiàn)下載”(我估計你是要離線(xiàn)下載上傳)。你所說(shuō)的離線(xiàn)下載,我估計是指離線(xiàn)下載文章列表,它會(huì )先保存在本地;等你上傳的時(shí)候再把這個(gè)本地的文件傳給騰訊服務(wù)器,此時(shí)就能下載到你的云盤(pán)或者瀏覽器啦。好在如果是你要“同步”文章列表,可以在云盤(pán)/瀏覽器嵌入internetexplorer擴展,把文章列表也要先放到本地。(然而微信自帶的瀏覽器有擴展你為什么不用呢)。
  最新解決方案:如果你的電腦上沒(méi)有windows,沒(méi)有macosx,一般,qq瀏覽器是支持你所要的設置的,在彈出對話(huà)框中:復制鏈接到web/本地即可,
  如果你是電腦上沒(méi)有dom,那么只能在手機本地用瀏覽器訪(fǎng)問(wèn),上傳過(guò)去qq瀏覽器才會(huì )給原網(wǎng)頁(yè)加載,但是速度非常慢。如果你是在手機瀏覽器里加載的圖片的話(huà),
  xhr(因為是騰訊郵箱的產(chǎn)品)
  我一直用微信公眾號提供的圖片服務(wù),直接截圖加速下載微信內部調用的是mp4格式,需要轉換(tomcat)tomcat的內部環(huán)境是windowsosxandroidrelease7。0tomcat7。0開(kāi)始禁止下載任何mp4格式文件(要安裝rebean)tomcat7。3。2測試通過(guò)ps。截圖下載不了直接在微信公眾號里添加微圖公眾號傳文件,下圖公眾號shadow3ee-capture添加文件即可得到各種格式的文件,哪里不行哪里修改即可微圖shadow3ee-capture2018。3。22封裝base64:-api/v1/tb106b9。html(二維碼自動(dòng)識別)。 查看全部

  querylist采集微信公眾號文章(微信自帶的瀏覽器有擴展你為什么不用呢?)
  querylist采集微信公眾號文章素材。截圖有加載時(shí)間問(wèn)題,騰訊會(huì )給微信文章分段,所以你才看不到“離線(xiàn)”和“離線(xiàn)下載”(我估計你是要離線(xiàn)下載上傳)。你所說(shuō)的離線(xiàn)下載,我估計是指離線(xiàn)下載文章列表,它會(huì )先保存在本地;等你上傳的時(shí)候再把這個(gè)本地的文件傳給騰訊服務(wù)器,此時(shí)就能下載到你的云盤(pán)或者瀏覽器啦。好在如果是你要“同步”文章列表,可以在云盤(pán)/瀏覽器嵌入internetexplorer擴展,把文章列表也要先放到本地。(然而微信自帶的瀏覽器有擴展你為什么不用呢)。
  最新解決方案:如果你的電腦上沒(méi)有windows,沒(méi)有macosx,一般,qq瀏覽器是支持你所要的設置的,在彈出對話(huà)框中:復制鏈接到web/本地即可,
  如果你是電腦上沒(méi)有dom,那么只能在手機本地用瀏覽器訪(fǎng)問(wèn),上傳過(guò)去qq瀏覽器才會(huì )給原網(wǎng)頁(yè)加載,但是速度非常慢。如果你是在手機瀏覽器里加載的圖片的話(huà),
  xhr(因為是騰訊郵箱的產(chǎn)品)
  我一直用微信公眾號提供的圖片服務(wù),直接截圖加速下載微信內部調用的是mp4格式,需要轉換(tomcat)tomcat的內部環(huán)境是windowsosxandroidrelease7。0tomcat7。0開(kāi)始禁止下載任何mp4格式文件(要安裝rebean)tomcat7。3。2測試通過(guò)ps。截圖下載不了直接在微信公眾號里添加微圖公眾號傳文件,下圖公眾號shadow3ee-capture添加文件即可得到各種格式的文件,哪里不行哪里修改即可微圖shadow3ee-capture2018。3。22封裝base64:-api/v1/tb106b9。html(二維碼自動(dòng)識別)。

querylist采集微信公眾號文章(querylist采集微信公眾號文章的關(guān)鍵詞,可以接google、微博、今日頭條)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 120 次瀏覽 ? 2021-11-25 11:10 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(querylist采集微信公眾號文章的關(guān)鍵詞,可以接google、微博、今日頭條)
  querylist采集微信公眾號文章的上下文關(guān)鍵詞,可以接google、微博、今日頭條、百度百科等平臺的接口轉換。除此之外,還可以收集歷史記錄(超長(cháng)關(guān)鍵詞);根據大數據及深度學(xué)習,讀取用戶(hù)瀏覽習慣與消費習慣,利用語(yǔ)義分析、內容挖掘,建立關(guān)鍵詞標簽庫,挖掘用戶(hù)感興趣的推薦系統。
  就是一堆數據啊。微信自己有個(gè)公眾號搜索看看,然后百度一下你這個(gè)文章在百度里的內容。另外是服務(wù)端返回標題、圖片、來(lái)源等關(guān)鍵詞。
  一般的推送服務(wù)器(sdk),包括一系列的請求、處理、評估、發(fā)送返回。自己做可以利用現有服務(wù)。比如,一個(gè)ga接口是做技術(shù)性開(kāi)發(fā)的,既然叫推送,那么只做用戶(hù)數據收集、分析;然后seo服務(wù),把自己的搜索結果發(fā)布到百度,就完成了。不過(guò)也要看你做的是哪類(lèi)推送。從公眾號的數據挖掘,其實(shí)上可以抽象到app;其實(shí)你用常見(jiàn)的c/s架構都可以完成,接口多,開(kāi)發(fā)較簡(jiǎn)單。像android推送就有androidservice等。
  其實(shí)不僅僅是推送服務(wù),需要計算推送數據,應該也要能抓取推送的數據,就是分析抓取到的數據,比如分析文章標題和內容,分析文章熱度,結合以上數據,可以生成個(gè)人統計報告,再然后應該也可以進(jìn)行云推送吧,http直接推送到服務(wù)器,至于注冊推送嘛,除了分析這些數據,可以自己進(jìn)行錄入,或者爬蟲(chóng),也有做同步數據的。最后還得做一下針對產(chǎn)品。 查看全部

  querylist采集微信公眾號文章(querylist采集微信公眾號文章的關(guān)鍵詞,可以接google、微博、今日頭條)
  querylist采集微信公眾號文章的上下文關(guān)鍵詞,可以接google、微博、今日頭條、百度百科等平臺的接口轉換。除此之外,還可以收集歷史記錄(超長(cháng)關(guān)鍵詞);根據大數據及深度學(xué)習,讀取用戶(hù)瀏覽習慣與消費習慣,利用語(yǔ)義分析、內容挖掘,建立關(guān)鍵詞標簽庫,挖掘用戶(hù)感興趣的推薦系統。
  就是一堆數據啊。微信自己有個(gè)公眾號搜索看看,然后百度一下你這個(gè)文章在百度里的內容。另外是服務(wù)端返回標題、圖片、來(lái)源等關(guān)鍵詞。
  一般的推送服務(wù)器(sdk),包括一系列的請求、處理、評估、發(fā)送返回。自己做可以利用現有服務(wù)。比如,一個(gè)ga接口是做技術(shù)性開(kāi)發(fā)的,既然叫推送,那么只做用戶(hù)數據收集、分析;然后seo服務(wù),把自己的搜索結果發(fā)布到百度,就完成了。不過(guò)也要看你做的是哪類(lèi)推送。從公眾號的數據挖掘,其實(shí)上可以抽象到app;其實(shí)你用常見(jiàn)的c/s架構都可以完成,接口多,開(kāi)發(fā)較簡(jiǎn)單。像android推送就有androidservice等。
  其實(shí)不僅僅是推送服務(wù),需要計算推送數據,應該也要能抓取推送的數據,就是分析抓取到的數據,比如分析文章標題和內容,分析文章熱度,結合以上數據,可以生成個(gè)人統計報告,再然后應該也可以進(jìn)行云推送吧,http直接推送到服務(wù)器,至于注冊推送嘛,除了分析這些數據,可以自己進(jìn)行錄入,或者爬蟲(chóng),也有做同步數據的。最后還得做一下針對產(chǎn)品。

querylist采集微信公眾號文章(,小編覺(jué)得挺不錯的主要介紹思路,代碼部分請自行解決獲取)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 146 次瀏覽 ? 2021-11-21 08:05 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(,小編覺(jué)得挺不錯的主要介紹思路,代碼部分請自行解決獲取)
  本文文章主要介紹python如何爬取搜狗微信公眾號文章永久鏈接思路分析,小編覺(jué)得還不錯,現分享給大家,給大家參考。跟著(zhù)小編一起來(lái)看看吧。
  本文主要講解思路,代碼部分請自行解決
  獲取搜狗微信當天信息排名
  指定輸入關(guān)鍵詞,通過(guò)scrapy抓取公眾號
  登錄微信公眾號鏈接獲取cookie信息
  由于微信公眾平臺的模擬登錄還未解決,需要手動(dòng)登錄實(shí)時(shí)獲取cookie信息
  
  
  
  
  在這里您可以更改永久鏈接
  代碼部分
  def parse(self, response):
item = SougouItem()
item["title"] = response.xpath('//title/text()').extract_first()
print("**"*5, item["title"],"**"*5)
name = input("----------請輸入需要搜索的信息:")
print(name)
url = "http://weixin.sogou.com/weixin ... ot%3B
yield scrapy.Request(url=url, callback=self.parse_two, meta={"name":name})
  在搜狗微信中,訪(fǎng)問(wèn)頻率會(huì )過(guò)快,導致需要輸入驗證碼
   def parse_two(self, response):
print(response.url)
name = response.meta["name"]
resp = response.xpath('//ul[@class="news-list"]/li')
s = 1
# 判斷url 是否是需要輸入驗證碼
res = re.search("from", response.url) # 需要驗證碼驗證
if res:
print(response.url)
img = response.xpath('//img/@src').extract()
print(img)
url_img = "http://weixin.sogou.com/antispider/"+ img[1]
print(url_img)
url_img = requests.get(url_img).content with open("urli.jpg", "wb") as f:
f.write(url_img) # f.close()
img = input("請輸入驗證碼:")
print(img)
url = response.url
r = re.search(r"from=(.*)",url).group(1)
print(r)
postData = {"c":img,"r":r,"v":"5"}
url = "http://weixin.sogou.com/antispider/thank.php"
yield scrapy.FormRequest(url=url, formdata=postData, callback=self.parse_two,meta={"name":name})
# 不需要驗證碼驗證
else:
for res, i in zip(resp, range(1, 10)):
item = SougouItem()
item["url"] = res.xpath('.//p[1]/a/@href').extract_first()
item["name"] = name
print("第%d條" % i) # 轉化永久鏈接
headers = {"Host": "mp.weixin.qq.com",
"Connection": "keep-alive",
"Accept": "application/json, text/javascript, */*; q=0.01",
"X-Requested-With": "XMLHttpRequest",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
"Referer": "https://mp.weixin.qq.com/cgi-b ... ot%3B,
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9",
"Cookie": "noticeLoginFlag=1; pgv_pvi=5269297152; pt2gguin=o1349184918; RK=ph4smy/QWu; ptcz=f3eb6ede5db921d0ada7f1713e6d1ca516d200fec57d602e677245490fcb7f1e; pgv_pvid=1033302674; o_cookie=1349184918; pac_uid=1_1349184918; ua_id=4nooSvHNkTOjpIpgAAAAAFX9OSNcLApfsluzwfClLW8=; mm_lang=zh_CN; noticeLoginFlag=1; remember_acct=Liangkai318; rewardsn=; wxtokenkey=777; pgv_si=s1944231936; uuid=700c40c965347f0925a8e8fdcc1e003e; ticket=023fc8861356b01527983c2c4765ef80903bf3d7; ticket_id=gh_6923d82780e4; cert=L_cE4aRdaZeDnzao3xEbMkcP3Kwuejoi; data_bizuin=3075391054; bizuin=3208078327; data_ticket=XrzOnrV9Odc80hJLtk8vFjTLI1vd7kfKJ9u+DzvaeeHxZkMXbv9kcWk/Pmqx/9g7; slave_sid=SWRKNmFyZ1NkM002Rk9NR0RRVGY5VFdMd1lXSkExWGtPcWJaREkzQ1BESEcyQkNLVlQ3YnB4OFNoNmtRZzdFdGpnVGlHak9LMjJ5eXBNVEgxZDlZb1BZMnlfN1hKdnJsV0NKallsQW91Zjk5Y3prVjlQRDNGYUdGUWNFNEd6eTRYT1FSOEQxT0MwR01Ja0Vo; slave_user=gh_6923d82780e4; xid=7b2245140217dbb3c5c0a552d46b9664; openid2ticket_oTr5Ot_B4nrDSj14zUxlXg8yrzws=D/B6//xK73BoO+mKE2EAjdcgIXNPw/b5PEDTDWM6t+4="}
respon = requests.get(url=item["url"]).content
gongzhongh = etree.HTML(respon).xpath('//a[@id="post-user"]/text()')[0]
# times = etree.HTML(respon).xpath('//*[@id="post-date"]/text()')[0]
title_one = etree.HTML(respon).xpath('//*[@id="activity-name"]/text()')[0].split()[0]
print(gongzhongh, title_one)
item["tit"] = title_one
item["gongzhongh"] = gongzhongh
# item["times"] = times
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + gongzhongh + "&begin=0&count=5"
# wenzhang_url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + item["tit"] + "&fakeid=MzA5MzMxMDk3OQ%3D%3D&type=9"
resp = requests.get(url=url, headers=headers).content
print(resp)
faskeids = json.loads(resp.decode("utf-8"))
try:
list_fask = faskeids["list"] except Exception as f:
print("**********[INFO]:請求失敗,登陸失敗, 請重新登陸*************")
return
for fask in list_fask:
fakeid = fask["fakeid"]
nickname = fask["nickname"] if nickname == item["gongzhongh"]:
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + fakeid + "&type=9"
# url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + item["tit"] + "&fakeid=MzA5MzMxMDk3OQ%3D%3D&type=9"
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + item["tit"] +"&fakeid=" + fakeid +"&type=9"
resp = requests.get(url=url, headers=headers).content
app = json.loads(resp.decode("utf-8"))["app_msg_list"]
item["aid"] = app["aid"]
item["appmsgid"] = app["appmsgid"]
item["cover"] = app["cover"]
item["digest"] = app["digest"]
item["url_link"] = app["link"]
item["tit"] = app["title"]
print(item)
time.sleep(10) # time.sleep(5)
# dict_wengzhang = json.loads(resp.decode("utf-8"))
# app_msg_list = dict_wengzhang["app_msg_list"]
# print(len(app_msg_list))
# for app in app_msg_list:
# print(app)
# title = app["title"]
# if title == item["tit"]:
# item["url_link"] = app["link"]
# updata_time = app["update_time"]
# item["times"] = time.strftime("%Y-%m-%d %H:%M:%S", updata_time)
# print("最終鏈接為:", item["url_link"])
# yield item
# else:
# print(app["title"], item["tit"])
# print("與所選文章不同放棄")
# # item["tit"] = app["title"]
# # item["url_link"] = app["link"]
# # yield item
# else:
# print(nickname, item["gongzhongh"])
# print("與所選公眾號不一致放棄")
# time.sleep(100)
# yield item
if response.xpath('//a[@class="np"]'):
s += 1
url = "http://weixin.sogou.com/weixin ... 2Bstr(s) # time.sleep(3)
yield scrapy.Request(url=url, callback=self.parse_two, meta={"name": name})
  以上就是python如何抓取搜狗微信公眾號文章永久鏈接心態(tài)分析的詳細內容,更多詳情請關(guān)注其他相關(guān)php中文網(wǎng)站文章!
  
  免責聲明:本文原創(chuàng )發(fā)表于php中文網(wǎng)。轉載請注明出處。感謝您的尊重!如果您有任何疑問(wèn),請與我們聯(lián)系 查看全部

  querylist采集微信公眾號文章(,小編覺(jué)得挺不錯的主要介紹思路,代碼部分請自行解決獲取)
  本文文章主要介紹python如何爬取搜狗微信公眾號文章永久鏈接思路分析,小編覺(jué)得還不錯,現分享給大家,給大家參考。跟著(zhù)小編一起來(lái)看看吧。
  本文主要講解思路,代碼部分請自行解決
  獲取搜狗微信當天信息排名
  指定輸入關(guān)鍵詞,通過(guò)scrapy抓取公眾號
  登錄微信公眾號鏈接獲取cookie信息
  由于微信公眾平臺的模擬登錄還未解決,需要手動(dòng)登錄實(shí)時(shí)獲取cookie信息
  
  
  
  
  在這里您可以更改永久鏈接
  代碼部分
  def parse(self, response):
item = SougouItem()
item["title"] = response.xpath('//title/text()').extract_first()
print("**"*5, item["title"],"**"*5)
name = input("----------請輸入需要搜索的信息:")
print(name)
url = "http://weixin.sogou.com/weixin ... ot%3B
yield scrapy.Request(url=url, callback=self.parse_two, meta={"name":name})
  在搜狗微信中,訪(fǎng)問(wèn)頻率會(huì )過(guò)快,導致需要輸入驗證碼
   def parse_two(self, response):
print(response.url)
name = response.meta["name"]
resp = response.xpath('//ul[@class="news-list"]/li')
s = 1
# 判斷url 是否是需要輸入驗證碼
res = re.search("from", response.url) # 需要驗證碼驗證
if res:
print(response.url)
img = response.xpath('//img/@src').extract()
print(img)
url_img = "http://weixin.sogou.com/antispider/"+ img[1]
print(url_img)
url_img = requests.get(url_img).content with open("urli.jpg", "wb") as f:
f.write(url_img) # f.close()
img = input("請輸入驗證碼:")
print(img)
url = response.url
r = re.search(r"from=(.*)",url).group(1)
print(r)
postData = {"c":img,"r":r,"v":"5"}
url = "http://weixin.sogou.com/antispider/thank.php"
yield scrapy.FormRequest(url=url, formdata=postData, callback=self.parse_two,meta={"name":name})
# 不需要驗證碼驗證
else:
for res, i in zip(resp, range(1, 10)):
item = SougouItem()
item["url"] = res.xpath('.//p[1]/a/@href').extract_first()
item["name"] = name
print("第%d條" % i) # 轉化永久鏈接
headers = {"Host": "mp.weixin.qq.com",
"Connection": "keep-alive",
"Accept": "application/json, text/javascript, */*; q=0.01",
"X-Requested-With": "XMLHttpRequest",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
"Referer": "https://mp.weixin.qq.com/cgi-b ... ot%3B,
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9",
"Cookie": "noticeLoginFlag=1; pgv_pvi=5269297152; pt2gguin=o1349184918; RK=ph4smy/QWu; ptcz=f3eb6ede5db921d0ada7f1713e6d1ca516d200fec57d602e677245490fcb7f1e; pgv_pvid=1033302674; o_cookie=1349184918; pac_uid=1_1349184918; ua_id=4nooSvHNkTOjpIpgAAAAAFX9OSNcLApfsluzwfClLW8=; mm_lang=zh_CN; noticeLoginFlag=1; remember_acct=Liangkai318; rewardsn=; wxtokenkey=777; pgv_si=s1944231936; uuid=700c40c965347f0925a8e8fdcc1e003e; ticket=023fc8861356b01527983c2c4765ef80903bf3d7; ticket_id=gh_6923d82780e4; cert=L_cE4aRdaZeDnzao3xEbMkcP3Kwuejoi; data_bizuin=3075391054; bizuin=3208078327; data_ticket=XrzOnrV9Odc80hJLtk8vFjTLI1vd7kfKJ9u+DzvaeeHxZkMXbv9kcWk/Pmqx/9g7; slave_sid=SWRKNmFyZ1NkM002Rk9NR0RRVGY5VFdMd1lXSkExWGtPcWJaREkzQ1BESEcyQkNLVlQ3YnB4OFNoNmtRZzdFdGpnVGlHak9LMjJ5eXBNVEgxZDlZb1BZMnlfN1hKdnJsV0NKallsQW91Zjk5Y3prVjlQRDNGYUdGUWNFNEd6eTRYT1FSOEQxT0MwR01Ja0Vo; slave_user=gh_6923d82780e4; xid=7b2245140217dbb3c5c0a552d46b9664; openid2ticket_oTr5Ot_B4nrDSj14zUxlXg8yrzws=D/B6//xK73BoO+mKE2EAjdcgIXNPw/b5PEDTDWM6t+4="}
respon = requests.get(url=item["url"]).content
gongzhongh = etree.HTML(respon).xpath('//a[@id="post-user"]/text()')[0]
# times = etree.HTML(respon).xpath('//*[@id="post-date"]/text()')[0]
title_one = etree.HTML(respon).xpath('//*[@id="activity-name"]/text()')[0].split()[0]
print(gongzhongh, title_one)
item["tit"] = title_one
item["gongzhongh"] = gongzhongh
# item["times"] = times
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + gongzhongh + "&begin=0&count=5"
# wenzhang_url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + item["tit"] + "&fakeid=MzA5MzMxMDk3OQ%3D%3D&type=9"
resp = requests.get(url=url, headers=headers).content
print(resp)
faskeids = json.loads(resp.decode("utf-8"))
try:
list_fask = faskeids["list"] except Exception as f:
print("**********[INFO]:請求失敗,登陸失敗, 請重新登陸*************")
return
for fask in list_fask:
fakeid = fask["fakeid"]
nickname = fask["nickname"] if nickname == item["gongzhongh"]:
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + fakeid + "&type=9"
# url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + item["tit"] + "&fakeid=MzA5MzMxMDk3OQ%3D%3D&type=9"
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + item["tit"] +"&fakeid=" + fakeid +"&type=9"
resp = requests.get(url=url, headers=headers).content
app = json.loads(resp.decode("utf-8"))["app_msg_list"]
item["aid"] = app["aid"]
item["appmsgid"] = app["appmsgid"]
item["cover"] = app["cover"]
item["digest"] = app["digest"]
item["url_link"] = app["link"]
item["tit"] = app["title"]
print(item)
time.sleep(10) # time.sleep(5)
# dict_wengzhang = json.loads(resp.decode("utf-8"))
# app_msg_list = dict_wengzhang["app_msg_list"]
# print(len(app_msg_list))
# for app in app_msg_list:
# print(app)
# title = app["title"]
# if title == item["tit"]:
# item["url_link"] = app["link"]
# updata_time = app["update_time"]
# item["times"] = time.strftime("%Y-%m-%d %H:%M:%S", updata_time)
# print("最終鏈接為:", item["url_link"])
# yield item
# else:
# print(app["title"], item["tit"])
# print("與所選文章不同放棄")
# # item["tit"] = app["title"]
# # item["url_link"] = app["link"]
# # yield item
# else:
# print(nickname, item["gongzhongh"])
# print("與所選公眾號不一致放棄")
# time.sleep(100)
# yield item
if response.xpath('//a[@class="np"]'):
s += 1
url = "http://weixin.sogou.com/weixin ... 2Bstr(s) # time.sleep(3)
yield scrapy.Request(url=url, callback=self.parse_two, meta={"name": name})
  以上就是python如何抓取搜狗微信公眾號文章永久鏈接心態(tài)分析的詳細內容,更多詳情請關(guān)注其他相關(guān)php中文網(wǎng)站文章!
  
  免責聲明:本文原創(chuàng )發(fā)表于php中文網(wǎng)。轉載請注明出處。感謝您的尊重!如果您有任何疑問(wèn),請與我們聯(lián)系

querylist采集微信公眾號文章(querylist采集微信公眾號文章信息,再爬取推文代碼源碼)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 105 次瀏覽 ? 2021-11-20 15:01 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(querylist采集微信公眾號文章信息,再爬取推文代碼源碼)
  querylist采集微信公眾號文章信息,爬取公眾號內推文代碼源碼,再爬取推文網(wǎng)頁(yè)源碼。具體代碼和爬取思路:(部分截圖來(lái)自阮一峰大大)1.爬取公眾號文章列表和推文列表獲取公眾號文章列表:2.爬取每一篇推文網(wǎng)頁(yè)源碼獲取推文頁(yè)面地址:3.爬取推文地址、推文文章名、作者、閱讀量對應公眾號地址:下面分步詳細介紹:一、爬取公眾號文章列表1.獲取公眾號文章列表地址:解析公眾號推文列表頁(yè)面,獲取公眾號文章地址,并寫(xiě)入文本表,具體代碼和原代碼參考阮一峰阮一峰的《爬蟲(chóng)開(kāi)發(fā)》博客,在此不再貼出,鏈接如下:阮一峰實(shí)戰教程-爬蟲(chóng)開(kāi)發(fā)2.爬取每一篇推文網(wǎng)頁(yè)源碼、微信公眾號昵稱(chēng)及作者獲取微信公眾號文章源碼:微信公眾號文章源碼地址:。
  與之對應的公眾號文章地址、公眾號昵稱(chēng)及作者:解析列表頁(yè)面獲取所有公眾號文章地址及昵稱(chēng)獲取公眾號名稱(chēng)獲取作者、標題和閱讀量對應文章鏈接解析微信公眾號內容獲取推文每一篇文章對應公眾號鏈接解析每一篇文章地址獲取每一篇推文的標題對應公眾號頁(yè)面解析每一篇推文的標題獲取微信公眾號關(guān)注文章列表獲取微信公眾號內容-每一篇推文列表獲取微信公眾號關(guān)注文章列表獲取所有公眾號文章標題獲取公眾號所有文章名稱(chēng)獲取微信公眾號所有文章內容-文章列表獲取獲取所有推文所有公眾號內容-文章列表獲取微信公眾號所有推文標題獲取所有推文推文內容-文章推文列表獲取每一篇推文所有公眾號公眾號地址獲取公眾號推文網(wǎng)頁(yè)地址獲取每一篇推文地址獲取公眾號推文內容獲取所有公眾號文章內容獲取每一篇文章內容獲取每一篇文章內容獲取公眾號文章鏈接得到所有公眾號文章內容獲取每一篇推文內容獲取所有文章所有鏈接將所有公眾號文章從列表頁(yè)獲取返回到微信公眾號獲取每一篇文章地址2.爬取每一篇推文的文章地址、作者和閱讀量文章所有微信公眾號全部推文地址文章所有微信公眾號全部推文作者和閱讀量全部公眾號文章鏈接獲取每一篇推文推文鏈接解析每一篇推文推文鏈接獲取所有推文的標題獲取每一篇推文的標題解析每一篇推文的標題獲取所有推文的文章鏈接獲取所有推文內容獲取所有推文文章鏈接解析每一篇推文文章鏈接獲取所有推文文章內容獲取每一篇推文內容獲取所有推文內容獲取所有推文內容獲取所有推文內容獲取每一篇推文文章鏈接獲取每一篇推文文章鏈接獲取每一篇推文文章鏈接獲取所有推文文章地址獲取每一篇推文文章地址獲取所有推文的文章鏈接解析所有推文文章鏈接獲取所有推文的地址解析每一篇推文標題獲取所有推文的標題解析所有推文標題獲取所有推文文章鏈接解。 查看全部

  querylist采集微信公眾號文章(querylist采集微信公眾號文章信息,再爬取推文代碼源碼)
  querylist采集微信公眾號文章信息,爬取公眾號內推文代碼源碼,再爬取推文網(wǎng)頁(yè)源碼。具體代碼和爬取思路:(部分截圖來(lái)自阮一峰大大)1.爬取公眾號文章列表和推文列表獲取公眾號文章列表:2.爬取每一篇推文網(wǎng)頁(yè)源碼獲取推文頁(yè)面地址:3.爬取推文地址、推文文章名、作者、閱讀量對應公眾號地址:下面分步詳細介紹:一、爬取公眾號文章列表1.獲取公眾號文章列表地址:解析公眾號推文列表頁(yè)面,獲取公眾號文章地址,并寫(xiě)入文本表,具體代碼和原代碼參考阮一峰阮一峰的《爬蟲(chóng)開(kāi)發(fā)》博客,在此不再貼出,鏈接如下:阮一峰實(shí)戰教程-爬蟲(chóng)開(kāi)發(fā)2.爬取每一篇推文網(wǎng)頁(yè)源碼、微信公眾號昵稱(chēng)及作者獲取微信公眾號文章源碼:微信公眾號文章源碼地址:。
  與之對應的公眾號文章地址、公眾號昵稱(chēng)及作者:解析列表頁(yè)面獲取所有公眾號文章地址及昵稱(chēng)獲取公眾號名稱(chēng)獲取作者、標題和閱讀量對應文章鏈接解析微信公眾號內容獲取推文每一篇文章對應公眾號鏈接解析每一篇文章地址獲取每一篇推文的標題對應公眾號頁(yè)面解析每一篇推文的標題獲取微信公眾號關(guān)注文章列表獲取微信公眾號內容-每一篇推文列表獲取微信公眾號關(guān)注文章列表獲取所有公眾號文章標題獲取公眾號所有文章名稱(chēng)獲取微信公眾號所有文章內容-文章列表獲取獲取所有推文所有公眾號內容-文章列表獲取微信公眾號所有推文標題獲取所有推文推文內容-文章推文列表獲取每一篇推文所有公眾號公眾號地址獲取公眾號推文網(wǎng)頁(yè)地址獲取每一篇推文地址獲取公眾號推文內容獲取所有公眾號文章內容獲取每一篇文章內容獲取每一篇文章內容獲取公眾號文章鏈接得到所有公眾號文章內容獲取每一篇推文內容獲取所有文章所有鏈接將所有公眾號文章從列表頁(yè)獲取返回到微信公眾號獲取每一篇文章地址2.爬取每一篇推文的文章地址、作者和閱讀量文章所有微信公眾號全部推文地址文章所有微信公眾號全部推文作者和閱讀量全部公眾號文章鏈接獲取每一篇推文推文鏈接解析每一篇推文推文鏈接獲取所有推文的標題獲取每一篇推文的標題解析每一篇推文的標題獲取所有推文的文章鏈接獲取所有推文內容獲取所有推文文章鏈接解析每一篇推文文章鏈接獲取所有推文文章內容獲取每一篇推文內容獲取所有推文內容獲取所有推文內容獲取所有推文內容獲取每一篇推文文章鏈接獲取每一篇推文文章鏈接獲取每一篇推文文章鏈接獲取所有推文文章地址獲取每一篇推文文章地址獲取所有推文的文章鏈接解析所有推文文章鏈接獲取所有推文的地址解析每一篇推文標題獲取所有推文的標題解析所有推文標題獲取所有推文文章鏈接解。

querylist采集微信公眾號文章( “內容為王”的時(shí)代,網(wǎng)站什么樣的內容才算好? )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 136 次瀏覽 ? 2021-11-18 15:06 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(
“內容為王”的時(shí)代,網(wǎng)站什么樣的內容才算好?
)
  
  在“內容為王”的時(shí)代,網(wǎng)站什么樣的內容好?有價(jià)值的內容只有原創(chuàng )文章嗎?事實(shí)上,這種想法是錯誤的。其實(shí)對于搜索引擎來(lái)說(shuō),無(wú)論你是原創(chuàng )文章還是偽原創(chuàng )文章,都能滿(mǎn)足用戶(hù)的需求。解決用戶(hù)問(wèn)題的優(yōu)質(zhì)內容,這樣的內容對用戶(hù)來(lái)說(shuō)是有價(jià)值的內容。這就是搜索引擎喜歡的。對于采集的站長(cháng),有價(jià)值的內容/優(yōu)質(zhì)的內容,我會(huì )選擇微信公眾號文章。到采集官方賬號的文章填寫(xiě)我們的網(wǎng)站,如下所示:
  
  為什么選擇采集微信公眾號文章?
  1、原創(chuàng ) 高度,減少同質(zhì)化
  2、 的互動(dòng)性很強,大多數 文章 內容傾向于與讀者互動(dòng)。非純信息網(wǎng)站,發(fā)布后無(wú)互動(dòng)
  3、布局干凈,采集垃圾郵件很少
  4、模板是固定的,不像很多博主經(jīng)常更換博客模板導致采集規則失效
  在這種情況下,就意味著(zhù)微信公眾號文章采集是可行的,但是如果想讓公眾號文章產(chǎn)生有價(jià)值的文章內容,就需要重點(diǎn)關(guān)注就以下三個(gè)點(diǎn)擊繼續:
  1.關(guān)注目標用戶(hù)
  文章 內容是否有價(jià)值,取決于能否解決用戶(hù)的問(wèn)題。這意味著(zhù)在填寫(xiě)內容時(shí),你需要明確用戶(hù)點(diǎn)擊進(jìn)入你的網(wǎng)站最希望得到什么信息。比如用戶(hù)想知道怎么做SEO優(yōu)化,我們文章的內容需要描述什么是SEO優(yōu)化,SEO優(yōu)化的過(guò)程,做SEO優(yōu)化時(shí)的注意事項等等,這也是我們經(jīng)常說(shuō)的說(shuō)“干貨”。
  2.內容標題簡(jiǎn)單易懂,能吸引眼球
  文章 內容的標題決定了用戶(hù)是否點(diǎn)擊你的文章進(jìn)行瀏覽。如果文章的標題不允許用戶(hù)“掃一掃”流程,他們可以大致了解里面的內容。什么是簡(jiǎn)短的描述,或者標題太簡(jiǎn)單明了,那么用戶(hù)遺漏的幾率非常高。如果文章沒(méi)有被用戶(hù)點(diǎn)擊瀏覽,里面的內容將是有價(jià)值的,不會(huì )被其他人發(fā)現。
  3.需要結合自己的獨立思考
  雖然說(shuō)是公眾號的內容,但不能直接按照原作者的想法來(lái)寫(xiě)。還需要用自己的獨立思考去思考用戶(hù)在搜索時(shí)還存在哪些問(wèn)題,并補充文章的內容,使文章的內容更加全面、簡(jiǎn)單易懂,這樣以更好地滿(mǎn)足用戶(hù)的需求。
   查看全部

  querylist采集微信公眾號文章(
“內容為王”的時(shí)代,網(wǎng)站什么樣的內容才算好?
)
  
  在“內容為王”的時(shí)代,網(wǎng)站什么樣的內容好?有價(jià)值的內容只有原創(chuàng )文章嗎?事實(shí)上,這種想法是錯誤的。其實(shí)對于搜索引擎來(lái)說(shuō),無(wú)論你是原創(chuàng )文章還是偽原創(chuàng )文章,都能滿(mǎn)足用戶(hù)的需求。解決用戶(hù)問(wèn)題的優(yōu)質(zhì)內容,這樣的內容對用戶(hù)來(lái)說(shuō)是有價(jià)值的內容。這就是搜索引擎喜歡的。對于采集的站長(cháng),有價(jià)值的內容/優(yōu)質(zhì)的內容,我會(huì )選擇微信公眾號文章。到采集官方賬號的文章填寫(xiě)我們的網(wǎng)站,如下所示:
  
  為什么選擇采集微信公眾號文章?
  1、原創(chuàng ) 高度,減少同質(zhì)化
  2、 的互動(dòng)性很強,大多數 文章 內容傾向于與讀者互動(dòng)。非純信息網(wǎng)站,發(fā)布后無(wú)互動(dòng)
  3、布局干凈,采集垃圾郵件很少
  4、模板是固定的,不像很多博主經(jīng)常更換博客模板導致采集規則失效
  在這種情況下,就意味著(zhù)微信公眾號文章采集是可行的,但是如果想讓公眾號文章產(chǎn)生有價(jià)值的文章內容,就需要重點(diǎn)關(guān)注就以下三個(gè)點(diǎn)擊繼續:
  1.關(guān)注目標用戶(hù)
  文章 內容是否有價(jià)值,取決于能否解決用戶(hù)的問(wèn)題。這意味著(zhù)在填寫(xiě)內容時(shí),你需要明確用戶(hù)點(diǎn)擊進(jìn)入你的網(wǎng)站最希望得到什么信息。比如用戶(hù)想知道怎么做SEO優(yōu)化,我們文章的內容需要描述什么是SEO優(yōu)化,SEO優(yōu)化的過(guò)程,做SEO優(yōu)化時(shí)的注意事項等等,這也是我們經(jīng)常說(shuō)的說(shuō)“干貨”。
  2.內容標題簡(jiǎn)單易懂,能吸引眼球
  文章 內容的標題決定了用戶(hù)是否點(diǎn)擊你的文章進(jìn)行瀏覽。如果文章的標題不允許用戶(hù)“掃一掃”流程,他們可以大致了解里面的內容。什么是簡(jiǎn)短的描述,或者標題太簡(jiǎn)單明了,那么用戶(hù)遺漏的幾率非常高。如果文章沒(méi)有被用戶(hù)點(diǎn)擊瀏覽,里面的內容將是有價(jià)值的,不會(huì )被其他人發(fā)現。
  3.需要結合自己的獨立思考
  雖然說(shuō)是公眾號的內容,但不能直接按照原作者的想法來(lái)寫(xiě)。還需要用自己的獨立思考去思考用戶(hù)在搜索時(shí)還存在哪些問(wèn)題,并補充文章的內容,使文章的內容更加全面、簡(jiǎn)單易懂,這樣以更好地滿(mǎn)足用戶(hù)的需求。
  

querylist采集微信公眾號文章(謝邀,查找公眾號文章數據的一種新方法)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 144 次瀏覽 ? 2021-11-15 19:00 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(謝邀,查找公眾號文章數據的一種新方法)
  querylist采集微信公眾號文章數據的一種新方法,可以很好地定位到某篇文章,可以先研究一下,最終要知道實(shí)際數據是來(lái)自于哪一篇公眾號的文章數據,根據文章內容進(jìn)行切分成多個(gè)querylist,獲取這些querylist進(jìn)行匹配的時(shí)候,對應querylist可以定位到文章內容。
  一個(gè)sqlmap命令就可以。
  dropquerylist
  在python中querylist就是文章querylist.range_by_date(自己想想就清楚了,
  謝邀mysqlquerylist需要哪些字段,有幾列,怎么輸出?mysql在查詢(xún)中使用mysql_query()函數可以,用于獲取數據結構表中索引相關(guān)的列。
  mysql的話(huà),
  如果數據量大,并且文章沒(méi)有id。請用pymysql庫,注意版本不要太老。數據量小,公眾號logo,標題作為特征也是可以的。
  謝邀,查找公眾號文章數據是通過(guò)人工匹配用戶(hù)標簽確定你要查找的公眾號的logo和標題,此外可以輔助使用table.choose_from_list函數查找到相應的文章列表,
  我有一個(gè)問(wèn)題,你做的是什么爬蟲(chóng)?不同的搜索引擎寫(xiě)的代碼必然是不一樣的。目前selenium還不好用吧。推薦一個(gè)第三方庫phantomjs爬蟲(chóng),挺好用的。 查看全部

  querylist采集微信公眾號文章(謝邀,查找公眾號文章數據的一種新方法)
  querylist采集微信公眾號文章數據的一種新方法,可以很好地定位到某篇文章,可以先研究一下,最終要知道實(shí)際數據是來(lái)自于哪一篇公眾號的文章數據,根據文章內容進(jìn)行切分成多個(gè)querylist,獲取這些querylist進(jìn)行匹配的時(shí)候,對應querylist可以定位到文章內容。
  一個(gè)sqlmap命令就可以。
  dropquerylist
  在python中querylist就是文章querylist.range_by_date(自己想想就清楚了,
  謝邀mysqlquerylist需要哪些字段,有幾列,怎么輸出?mysql在查詢(xún)中使用mysql_query()函數可以,用于獲取數據結構表中索引相關(guān)的列。
  mysql的話(huà),
  如果數據量大,并且文章沒(méi)有id。請用pymysql庫,注意版本不要太老。數據量小,公眾號logo,標題作為特征也是可以的。
  謝邀,查找公眾號文章數據是通過(guò)人工匹配用戶(hù)標簽確定你要查找的公眾號的logo和標題,此外可以輔助使用table.choose_from_list函數查找到相應的文章列表,
  我有一個(gè)問(wèn)題,你做的是什么爬蟲(chóng)?不同的搜索引擎寫(xiě)的代碼必然是不一樣的。目前selenium還不好用吧。推薦一個(gè)第三方庫phantomjs爬蟲(chóng),挺好用的。

querylist采集微信公眾號文章(Python模擬安卓App操作微信App的方法(詳見(jiàn)代碼介紹))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 157 次瀏覽 ? 2021-11-15 09:03 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(Python模擬安卓App操作微信App的方法(詳見(jiàn)代碼介紹))
  本文文章主要介紹了基于Python采集的微信公眾號歷史數據爬取。文章中介紹的示例代碼非常詳細,對大家的學(xué)習或工作有一定的參考學(xué)習價(jià)值。有需要的朋友可以參考
  鯤志鵬的技術(shù)人員將在本文中介紹一種采集通過(guò)模擬微信App的操作來(lái)指定公眾號所有歷史數據的方法。
  通過(guò)我們的抓包分析,我們發(fā)現微信公眾號的歷史數據是通過(guò)HTTP協(xié)議加載的。對應的API接口如下圖所示,其中有四個(gè)關(guān)鍵參數(__biz、appmsg_token、pass_ticket、Cookie)。
  
  為了能夠得到這四個(gè)參數,我們需要模擬App的運行,讓它生成這些參數,然后我們就可以抓包了。對于模擬App操作,我們介紹了通過(guò)Python模擬Android App的方法(詳見(jiàn)詳情)。對于 HTTP 集成捕獲,我們之前已經(jīng)引入了 Mitmproxy(查看詳情)。
  我們需要模擬微信的操作來(lái)完成以下步驟:
  1. 推出微信應用
  2. 點(diǎn)擊“聯(lián)系人”
  3. 點(diǎn)擊“公眾號”
  4.點(diǎn)擊公眾號進(jìn)入采集
  5. 點(diǎn)擊右上角的用戶(hù)頭像圖標
  6. 點(diǎn)擊“所有消息”
  
  
  此時(shí),我們可以從響應數據中捕捉到__biz、appmsg_token、pass_ticket這三個(gè)關(guān)鍵參數,以及請求頭中的Cookie值。如下所示。
  
  
  有了以上四個(gè)參數,我們就可以構造一個(gè)API請求來(lái)獲取歷史文章列表,通過(guò)調用API接口直接獲取數據(無(wú)需模擬App操作)。核心參數如下。通過(guò)改變偏移參數,可以得到所有的歷史數據。
   # Cookie headers = {'Cookie': 'rewardsn=; wxtokenkey=777; wxuin=584068438; devicetype=android-19; version=26060736; lang=zh_CN; pass_ticket=Rr8cO5c2******3tKGqe7aVZzV9TupvrK+1uHHmHYQGL2WFdKIE; wap_sid2=COKhxu4KElxckFZQ3QzTHU4WThEUk0zcWdrZjhGcUdYdEVSV3Y1X2NPWHNUakRrd1ZzMnpLTERpdE5rbmxjSTg******dlRBcUNRazZpOGxTZUVEQUTgNQJVO'} url = 'https://mp.weixin.qq.com/mp/profile_ext?' data = {} data['is_ok'] = '1' data['count'] = '10' data['wxtoken'] = '' data['f'] = 'json' data['scene'] = '124' data['uin'] = '777' data['key'] = '777' data['offset'] = '0' data['action'] = 'getmsg' data['x5'] = '0' # 下面三個(gè)參數需要替換 # https://mp.weixin.qq.com/mp/pr ... Dhome應答數據里會(huì )暴漏這三個(gè)參數 data['__biz'] = 'MjM5MzQyOTM1OQ==' data['appmsg_token'] = '993_V8%2BEmfVD7g%2FvMZ****4DNUJNFkg~~' data['pass_ticket'] = 'Rr8cO5c23ZngeQHRGy8E7gv*****pvrK+1uHHmHYQGL2WFdKIE' url = url + urllib.urlencode(data)
  以“數字工廠(chǎng)”微信公眾號為例,采集的過(guò)程截圖如下:
  
  輸出結果截圖如下:
  
  以上就是基于Python采集爬取微信公眾號歷史數據的詳細內容。更多詳情請關(guān)注其他相關(guān)html中文網(wǎng)站文章! 查看全部

  querylist采集微信公眾號文章(Python模擬安卓App操作微信App的方法(詳見(jiàn)代碼介紹))
  本文文章主要介紹了基于Python采集的微信公眾號歷史數據爬取。文章中介紹的示例代碼非常詳細,對大家的學(xué)習或工作有一定的參考學(xué)習價(jià)值。有需要的朋友可以參考
  鯤志鵬的技術(shù)人員將在本文中介紹一種采集通過(guò)模擬微信App的操作來(lái)指定公眾號所有歷史數據的方法。
  通過(guò)我們的抓包分析,我們發(fā)現微信公眾號的歷史數據是通過(guò)HTTP協(xié)議加載的。對應的API接口如下圖所示,其中有四個(gè)關(guān)鍵參數(__biz、appmsg_token、pass_ticket、Cookie)。
  
  為了能夠得到這四個(gè)參數,我們需要模擬App的運行,讓它生成這些參數,然后我們就可以抓包了。對于模擬App操作,我們介紹了通過(guò)Python模擬Android App的方法(詳見(jiàn)詳情)。對于 HTTP 集成捕獲,我們之前已經(jīng)引入了 Mitmproxy(查看詳情)。
  我們需要模擬微信的操作來(lái)完成以下步驟:
  1. 推出微信應用
  2. 點(diǎn)擊“聯(lián)系人”
  3. 點(diǎn)擊“公眾號”
  4.點(diǎn)擊公眾號進(jìn)入采集
  5. 點(diǎn)擊右上角的用戶(hù)頭像圖標
  6. 點(diǎn)擊“所有消息”
  
  
  此時(shí),我們可以從響應數據中捕捉到__biz、appmsg_token、pass_ticket這三個(gè)關(guān)鍵參數,以及請求頭中的Cookie值。如下所示。
  
  
  有了以上四個(gè)參數,我們就可以構造一個(gè)API請求來(lái)獲取歷史文章列表,通過(guò)調用API接口直接獲取數據(無(wú)需模擬App操作)。核心參數如下。通過(guò)改變偏移參數,可以得到所有的歷史數據。
   # Cookie headers = {'Cookie': 'rewardsn=; wxtokenkey=777; wxuin=584068438; devicetype=android-19; version=26060736; lang=zh_CN; pass_ticket=Rr8cO5c2******3tKGqe7aVZzV9TupvrK+1uHHmHYQGL2WFdKIE; wap_sid2=COKhxu4KElxckFZQ3QzTHU4WThEUk0zcWdrZjhGcUdYdEVSV3Y1X2NPWHNUakRrd1ZzMnpLTERpdE5rbmxjSTg******dlRBcUNRazZpOGxTZUVEQUTgNQJVO'} url = 'https://mp.weixin.qq.com/mp/profile_ext?' data = {} data['is_ok'] = '1' data['count'] = '10' data['wxtoken'] = '' data['f'] = 'json' data['scene'] = '124' data['uin'] = '777' data['key'] = '777' data['offset'] = '0' data['action'] = 'getmsg' data['x5'] = '0' # 下面三個(gè)參數需要替換 # https://mp.weixin.qq.com/mp/pr ... Dhome應答數據里會(huì )暴漏這三個(gè)參數 data['__biz'] = 'MjM5MzQyOTM1OQ==' data['appmsg_token'] = '993_V8%2BEmfVD7g%2FvMZ****4DNUJNFkg~~' data['pass_ticket'] = 'Rr8cO5c23ZngeQHRGy8E7gv*****pvrK+1uHHmHYQGL2WFdKIE' url = url + urllib.urlencode(data)
  以“數字工廠(chǎng)”微信公眾號為例,采集的過(guò)程截圖如下:
  
  輸出結果截圖如下:
  
  以上就是基于Python采集爬取微信公眾號歷史數據的詳細內容。更多詳情請關(guān)注其他相關(guān)html中文網(wǎng)站文章!

querylist采集微信公眾號文章(微信公眾號文章的GET及GET方法(二))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 197 次瀏覽 ? 2021-11-14 17:11 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信公眾號文章的GET及GET方法(二))
  一.思考
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二. 接口分析
  獲取微信公眾號接口: 參數:action=search_biz begin=0 count=5 query=公眾號token=每個(gè)賬戶(hù)對應的Token值 lang=zh_CN f=json ajax=1 請求方式:GET 所以在這個(gè)界面我們您只需要獲取token,查詢(xún)就是您需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。
  
  獲取對應公眾號文章的接口: 參數:action=list_ex begin=0 count=5 fakeid=MjM5NDAwMTA2MA== type=9 query= token=557131216 lang=zh_CN f=json ajax=1 請求方式: GET這個(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的值。通過(guò)模擬用戶(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í)間,否則賬號很容易被封,獲取不到返回的數據。
  PS:如需Python學(xué)習資料,可點(diǎn)擊下方鏈接自行獲取
  Python免費學(xué)習資料和群交流答案 點(diǎn)擊加入 查看全部

  querylist采集微信公眾號文章(微信公眾號文章的GET及GET方法(二))
  一.思考
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二. 接口分析
  獲取微信公眾號接口: 參數:action=search_biz begin=0 count=5 query=公眾號token=每個(gè)賬戶(hù)對應的Token值 lang=zh_CN f=json ajax=1 請求方式:GET 所以在這個(gè)界面我們您只需要獲取token,查詢(xún)就是您需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。
  
  獲取對應公眾號文章的接口: 參數:action=list_ex begin=0 count=5 fakeid=MjM5NDAwMTA2MA== type=9 query= token=557131216 lang=zh_CN f=json ajax=1 請求方式: GET這個(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的值。通過(guò)模擬用戶(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í)間,否則賬號很容易被封,獲取不到返回的數據。
  PS:如需Python學(xué)習資料,可點(diǎn)擊下方鏈接自行獲取
  Python免費學(xué)習資料和群交流答案 點(diǎn)擊加入

querylist采集微信公眾號文章( 微信小程序中如何打開(kāi)公眾號中的文章(圖))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 174 次瀏覽 ? 2021-11-13 14:08 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(
微信小程序中如何打開(kāi)公眾號中的文章(圖))
  微信小程序獲取文章公眾號列表,顯示文章示例代碼
  更新時(shí)間:2020年3月10日16:08:20 作者:YO_RUI
  本文文章主要介紹微信小程序獲取公眾號列表文章以及顯示文章的示例代碼。文章中介紹的示例代碼非常詳細,對大家的學(xué)習或者工作都有一定的借鑒作用。參考學(xué)習的價(jià)值,有需要的朋友,和小編一起學(xué)習吧。
  如何在微信小程序中打開(kāi)公眾號中的文章,步驟比較簡(jiǎn)單。
  1、公眾號設置
  如果小程序想要獲取公眾號的資料,公眾號需要做一些設置。
  1.1個(gè)綁定小程序
  公眾號需要綁定目標小程序,否則無(wú)法開(kāi)通公眾號文章。
  在公眾號管理界面,點(diǎn)擊小程序管理--> 關(guān)聯(lián)小程序
  
  輸入小程序的AppID進(jìn)行搜索綁定。
  
  1.2 公眾號開(kāi)發(fā)者功能配置
 ?。?)在公眾號管理界面,點(diǎn)擊開(kāi)發(fā)模塊中的基本配置選項。
  
 ?。?) 打開(kāi)開(kāi)發(fā)者密文(AppSecret),注意保存并修改密文。
 ?。?) 設置ip白名單,這個(gè)是發(fā)起請求的機器的外網(wǎng)ip,如果是在自己的電腦上,就是自己電腦的外網(wǎng)ip。如果部署到server,是服務(wù)器的外網(wǎng)ip。
  
  2、獲取文章信息的步驟
  以下僅作為演示。
  實(shí)際項目中,在自己的服務(wù)器程序中獲取,不要直接在小程序中獲取,畢竟需要用到appid、appsecret等高機密參數。
  2.1 獲取 access_token
  access_token是公眾號全局唯一的接口調用憑證,公眾號在調用各個(gè)接口時(shí)需要使用access_token。API 文檔
  
private String getToken() throws MalformedURLException, IOException, ProtocolException {
// access_token接口https請求方式: GET https://api.weixin.qq.com/cgi- ... ECRET
String path = " https://api.weixin.qq.com/cgi- ... 3B%3B
String appid = "公眾號的開(kāi)發(fā)者ID(AppID)";
String secret = "公眾號的開(kāi)發(fā)者密碼(AppSecret)";
URL url = new URL(path+"&appid=" + appid + "&secret=" + secret);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();

InputStream in = connection.getInputStream();
byte[] b = new byte[100];
int len = -1;
StringBuffer sb = new StringBuffer();
while((len = in.read(b)) != -1) {
sb.append(new String(b,0,len));
}

System.out.println(sb.toString());
in.close();
return sb.toString();
}
  2.2 獲取文章的列表
  API 文檔
  
private String getContentList(String token) throws IOException {
String path = " https://api.weixin.qq.com/cgi- ... ot%3B + token;
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("content-type", "application/json;charset=utf-8");
connection.connect();
// post發(fā)送的參數
Map map = new HashMap();
map.put("type", "news"); // news表示圖文類(lèi)型的素材,具體看API文檔
map.put("offset", 0);
map.put("count", 1);
// 將map轉換成json字符串
String paramBody = JSON.toJSONString(map); // 這里用了Alibaba的fastjson

OutputStream out = connection.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
bw.write(paramBody); // 向流中寫(xiě)入參數字符串
bw.flush();

InputStream in = connection.getInputStream();
byte[] b = new byte[100];
int len = -1;
StringBuffer sb = new StringBuffer();
while((len = in.read(b)) != -1) {
sb.append(new String(b,0,len));
}

in.close();
return sb.toString();
}
  測試:
  
@Test
public void test() throws IOException {

String result1 = getToken();
Map token = (Map) JSON.parseObject(result1);
String result2 = getContentList(token.get("access_token").toString());
System.out.println(result2);
}
  
  轉換成json格式,參數說(shuō)明見(jiàn)上面API文檔
  
  
  第二張圖中的url為公眾號文章的地址。將有與獲得的 tem 項目數量一樣多的項目。只要得到以上結果,在小程序中打開(kāi)公眾號文章已經(jīng)成功過(guò)半。
  最后在小程序中使用組件打開(kāi),src為文章的url地址。
  
  本文介紹微信小程序獲取公眾號文章列表并展示文章文章的示例代碼,以及更多獲取公眾號的相關(guān)小程序文章列表內容請搜索腳本之家之前的文章或繼續瀏覽下方的相關(guān)文章。希望大家以后多多支持Script Home! 查看全部

  querylist采集微信公眾號文章(
微信小程序中如何打開(kāi)公眾號中的文章(圖))
  微信小程序獲取文章公眾號列表,顯示文章示例代碼
  更新時(shí)間:2020年3月10日16:08:20 作者:YO_RUI
  本文文章主要介紹微信小程序獲取公眾號列表文章以及顯示文章的示例代碼。文章中介紹的示例代碼非常詳細,對大家的學(xué)習或者工作都有一定的借鑒作用。參考學(xué)習的價(jià)值,有需要的朋友,和小編一起學(xué)習吧。
  如何在微信小程序中打開(kāi)公眾號中的文章,步驟比較簡(jiǎn)單。
  1、公眾號設置
  如果小程序想要獲取公眾號的資料,公眾號需要做一些設置。
  1.1個(gè)綁定小程序
  公眾號需要綁定目標小程序,否則無(wú)法開(kāi)通公眾號文章。
  在公眾號管理界面,點(diǎn)擊小程序管理--> 關(guān)聯(lián)小程序
  
  輸入小程序的AppID進(jìn)行搜索綁定。
  
  1.2 公眾號開(kāi)發(fā)者功能配置
 ?。?)在公眾號管理界面,點(diǎn)擊開(kāi)發(fā)模塊中的基本配置選項。
  
 ?。?) 打開(kāi)開(kāi)發(fā)者密文(AppSecret),注意保存并修改密文。
 ?。?) 設置ip白名單,這個(gè)是發(fā)起請求的機器的外網(wǎng)ip,如果是在自己的電腦上,就是自己電腦的外網(wǎng)ip。如果部署到server,是服務(wù)器的外網(wǎng)ip。
  
  2、獲取文章信息的步驟
  以下僅作為演示。
  實(shí)際項目中,在自己的服務(wù)器程序中獲取,不要直接在小程序中獲取,畢竟需要用到appid、appsecret等高機密參數。
  2.1 獲取 access_token
  access_token是公眾號全局唯一的接口調用憑證,公眾號在調用各個(gè)接口時(shí)需要使用access_token。API 文檔
  
private String getToken() throws MalformedURLException, IOException, ProtocolException {
// access_token接口https請求方式: GET https://api.weixin.qq.com/cgi- ... ECRET
String path = " https://api.weixin.qq.com/cgi- ... 3B%3B
String appid = "公眾號的開(kāi)發(fā)者ID(AppID)";
String secret = "公眾號的開(kāi)發(fā)者密碼(AppSecret)";
URL url = new URL(path+"&appid=" + appid + "&secret=" + secret);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();

InputStream in = connection.getInputStream();
byte[] b = new byte[100];
int len = -1;
StringBuffer sb = new StringBuffer();
while((len = in.read(b)) != -1) {
sb.append(new String(b,0,len));
}

System.out.println(sb.toString());
in.close();
return sb.toString();
}
  2.2 獲取文章的列表
  API 文檔
  
private String getContentList(String token) throws IOException {
String path = " https://api.weixin.qq.com/cgi- ... ot%3B + token;
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("content-type", "application/json;charset=utf-8");
connection.connect();
// post發(fā)送的參數
Map map = new HashMap();
map.put("type", "news"); // news表示圖文類(lèi)型的素材,具體看API文檔
map.put("offset", 0);
map.put("count", 1);
// 將map轉換成json字符串
String paramBody = JSON.toJSONString(map); // 這里用了Alibaba的fastjson

OutputStream out = connection.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
bw.write(paramBody); // 向流中寫(xiě)入參數字符串
bw.flush();

InputStream in = connection.getInputStream();
byte[] b = new byte[100];
int len = -1;
StringBuffer sb = new StringBuffer();
while((len = in.read(b)) != -1) {
sb.append(new String(b,0,len));
}

in.close();
return sb.toString();
}
  測試:
  
@Test
public void test() throws IOException {

String result1 = getToken();
Map token = (Map) JSON.parseObject(result1);
String result2 = getContentList(token.get("access_token").toString());
System.out.println(result2);
}
  
  轉換成json格式,參數說(shuō)明見(jiàn)上面API文檔
  
  
  第二張圖中的url為公眾號文章的地址。將有與獲得的 tem 項目數量一樣多的項目。只要得到以上結果,在小程序中打開(kāi)公眾號文章已經(jīng)成功過(guò)半。
  最后在小程序中使用組件打開(kāi),src為文章的url地址。
  
  本文介紹微信小程序獲取公眾號文章列表并展示文章文章的示例代碼,以及更多獲取公眾號的相關(guān)小程序文章列表內容請搜索腳本之家之前的文章或繼續瀏覽下方的相關(guān)文章。希望大家以后多多支持Script Home!

querylist采集微信公眾號文章( 搜狗搜索采集公眾號歷史消息(圖)問(wèn)題解析)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 153 次瀏覽 ? 2021-11-13 14:05 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(
搜狗搜索采集公眾號歷史消息(圖)問(wèn)題解析)
  PHP如何寫(xiě)微信公眾號文章頁(yè)面采集
  通過(guò)搜狗搜索采集公眾號的歷史新聞?dòng)袔讉€(gè)問(wèn)題:
  1、 有驗證碼;
  2、歷史留言列表只有最近10條群發(fā);
  3、文章 地址有有效期;
  4、據說(shuō)批量采集需要改ip;
  通過(guò)我之前的文章方法,沒(méi)有出現這樣的問(wèn)題,雖然采集的系統搭建不像傳統的采集器寫(xiě)規則爬行那么簡(jiǎn)單。但是batch采集構建一次后的效率還是可以的。而且,采集的文章地址是永久有效的,您可以通過(guò)采集獲取一個(gè)公眾號的所有歷史消息。
  先從公眾號文章的鏈接地址說(shuō)起:
  1、 復制微信右上角菜單中的鏈接地址:
  2、 歷史消息列表中獲取的地址:
  #wechat_redirect
  3、完整的真實(shí)地址:
  %3D%3D&devicetype=iOS10.1.1&version=16050120&nettype=WIFI&fontScale=100&pass_ticket=FGRyGfXLPEa4AeOsIZu7KFJo6CiXOZex83Y5YBRglW4%header1D
  以上三個(gè)地址是同一篇文章文章的地址,在不同位置獲取時(shí)得到三個(gè)完全不同的結果。
  和歷史新聞頁(yè)面一樣,微信也有自動(dòng)添加參數的機制。第一個(gè)地址是通過(guò)復制鏈接獲得的,看起來(lái)像一個(gè)變相的代碼。其實(shí)沒(méi)用,我們不去想。第二個(gè)地址是通過(guò)前面文章中介紹的方法從json文章歷史消息列表中得到的鏈接地址,我們可以將這個(gè)地址保存到數據庫中。然后就可以通過(guò)這個(gè)地址從服務(wù)器獲取文章的內容。第三個(gè)鏈接添加參數后,目的是讓文章頁(yè)面中的閱讀js獲取閱讀和點(diǎn)贊的json結果。在我們之前的文章方法中,由于文章頁(yè)面是由客戶(hù)端打開(kāi)顯示的,因為這些參數,文章中的js
  本次文章的內容是根據本專(zhuān)欄前面文章介紹的方法獲取大量微信文章,詳細研究如何獲取文章的內容@文章 和其他一些有用的信息方法。
  
 ?。ㄎ恼?列表保存在我的數據庫中,一些字段)
  1、獲取文章的源碼:
  文章的源碼可以通過(guò)php函數file_get_content()讀入一個(gè)變量。由于微信文章的源碼可以從瀏覽器打開(kāi),這里就不貼了,以免浪費頁(yè)面空間。
  2、 源代碼中的有用信息:
  1) 原文內容:
  原創(chuàng )內容收錄在一個(gè)標簽中,通過(guò)php代碼獲?。?br /> <p> 查看全部

  querylist采集微信公眾號文章(
搜狗搜索采集公眾號歷史消息(圖)問(wèn)題解析)
  PHP如何寫(xiě)微信公眾號文章頁(yè)面采集
  通過(guò)搜狗搜索采集公眾號的歷史新聞?dòng)袔讉€(gè)問(wèn)題:
  1、 有驗證碼;
  2、歷史留言列表只有最近10條群發(fā);
  3、文章 地址有有效期;
  4、據說(shuō)批量采集需要改ip;
  通過(guò)我之前的文章方法,沒(méi)有出現這樣的問(wèn)題,雖然采集的系統搭建不像傳統的采集器寫(xiě)規則爬行那么簡(jiǎn)單。但是batch采集構建一次后的效率還是可以的。而且,采集的文章地址是永久有效的,您可以通過(guò)采集獲取一個(gè)公眾號的所有歷史消息。
  先從公眾號文章的鏈接地址說(shuō)起:
  1、 復制微信右上角菜單中的鏈接地址:
  2、 歷史消息列表中獲取的地址:
  #wechat_redirect
  3、完整的真實(shí)地址:
  %3D%3D&amp;devicetype=iOS10.1.1&amp;version=16050120&amp;nettype=WIFI&amp;fontScale=100&amp;pass_ticket=FGRyGfXLPEa4AeOsIZu7KFJo6CiXOZex83Y5YBRglW4%header1D
  以上三個(gè)地址是同一篇文章文章的地址,在不同位置獲取時(shí)得到三個(gè)完全不同的結果。
  和歷史新聞頁(yè)面一樣,微信也有自動(dòng)添加參數的機制。第一個(gè)地址是通過(guò)復制鏈接獲得的,看起來(lái)像一個(gè)變相的代碼。其實(shí)沒(méi)用,我們不去想。第二個(gè)地址是通過(guò)前面文章中介紹的方法從json文章歷史消息列表中得到的鏈接地址,我們可以將這個(gè)地址保存到數據庫中。然后就可以通過(guò)這個(gè)地址從服務(wù)器獲取文章的內容。第三個(gè)鏈接添加參數后,目的是讓文章頁(yè)面中的閱讀js獲取閱讀和點(diǎn)贊的json結果。在我們之前的文章方法中,由于文章頁(yè)面是由客戶(hù)端打開(kāi)顯示的,因為這些參數,文章中的js
  本次文章的內容是根據本專(zhuān)欄前面文章介紹的方法獲取大量微信文章,詳細研究如何獲取文章的內容@文章 和其他一些有用的信息方法。
  
 ?。ㄎ恼?列表保存在我的數據庫中,一些字段)
  1、獲取文章的源碼:
  文章的源碼可以通過(guò)php函數file_get_content()讀入一個(gè)變量。由于微信文章的源碼可以從瀏覽器打開(kāi),這里就不貼了,以免浪費頁(yè)面空間。
  2、 源代碼中的有用信息:
  1) 原文內容:
  原創(chuàng )內容收錄在一個(gè)標簽中,通過(guò)php代碼獲?。?br /> <p>

querylist采集微信公眾號文章(querylist采集微信公眾號文章的api接口開(kāi)放已經(jīng)有一段時(shí)間了)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 129 次瀏覽 ? 2021-11-13 09:08 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(querylist采集微信公眾號文章的api接口開(kāi)放已經(jīng)有一段時(shí)間了)
  querylist采集微信公眾號文章的api接口開(kāi)放已經(jīng)有一段時(shí)間了,由于上次在內測已經(jīng)有很多人用過(guò)api接口,但是還是有一些小伙伴對于該接口只是初步了解,沒(méi)有太大興趣,而我呢,就一直在關(guān)注,嘗試去開(kāi)發(fā),今天小伙伴剛好問(wèn)到,所以我就想跟大家分享下。這是ip接口的官方說(shuō)明,接口開(kāi)放時(shí)間是3月8號,至今已經(jīng)有3個(gè)多月,一共擁有9個(gè)g的內存,為什么說(shuō)他有9個(gè)g的內存呢,大家注意看下文圖片中的權重active權重就可以明白,這9個(gè)g不是隨便浪費的,分配到微信小程序及公眾號,每個(gè)應用里面,都會(huì )占用4gb的內存,(像今天這么大運行量的小程序,內存可能達到9g)下面是一些參數,大家也可以去微信公眾號里面看api文檔,非常的簡(jiǎn)單,關(guān)于這些如果大家有疑問(wèn)可以留言,我會(huì )盡力解答~這是地址。
  詳細描述是這樣的:
  用于微信小程序,公眾號,群發(fā),
  不能請參看我寫(xiě)的博客:「大神仙叔」的博客
  算是api吧
  額除了官方文檔里的接口接下來(lái)就不知道該怎么去取了。
  你用什么軟件發(fā)布的呢?
  大神回答.應該是不可以的
  -cn
  大神回答這個(gè)問(wèn)題,回答的更詳細一些,目前微信公眾號文章的api接口只開(kāi)放出來(lái)了9個(gè),你需要自己去去找,api開(kāi)放的較少,可以從其他渠道看看有哪些,比如一些其他的公眾號,不多說(shuō)了, 查看全部

  querylist采集微信公眾號文章(querylist采集微信公眾號文章的api接口開(kāi)放已經(jīng)有一段時(shí)間了)
  querylist采集微信公眾號文章的api接口開(kāi)放已經(jīng)有一段時(shí)間了,由于上次在內測已經(jīng)有很多人用過(guò)api接口,但是還是有一些小伙伴對于該接口只是初步了解,沒(méi)有太大興趣,而我呢,就一直在關(guān)注,嘗試去開(kāi)發(fā),今天小伙伴剛好問(wèn)到,所以我就想跟大家分享下。這是ip接口的官方說(shuō)明,接口開(kāi)放時(shí)間是3月8號,至今已經(jīng)有3個(gè)多月,一共擁有9個(gè)g的內存,為什么說(shuō)他有9個(gè)g的內存呢,大家注意看下文圖片中的權重active權重就可以明白,這9個(gè)g不是隨便浪費的,分配到微信小程序及公眾號,每個(gè)應用里面,都會(huì )占用4gb的內存,(像今天這么大運行量的小程序,內存可能達到9g)下面是一些參數,大家也可以去微信公眾號里面看api文檔,非常的簡(jiǎn)單,關(guān)于這些如果大家有疑問(wèn)可以留言,我會(huì )盡力解答~這是地址。
  詳細描述是這樣的:
  用于微信小程序,公眾號,群發(fā),
  不能請參看我寫(xiě)的博客:「大神仙叔」的博客
  算是api吧
  額除了官方文檔里的接口接下來(lái)就不知道該怎么去取了。
  你用什么軟件發(fā)布的呢?
  大神回答.應該是不可以的
  -cn
  大神回答這個(gè)問(wèn)題,回答的更詳細一些,目前微信公眾號文章的api接口只開(kāi)放出來(lái)了9個(gè),你需要自己去去找,api開(kāi)放的較少,可以從其他渠道看看有哪些,比如一些其他的公眾號,不多說(shuō)了,

querylist采集微信公眾號文章( React和ant-design增加了方便查看的小程序指南 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 148 次瀏覽 ? 2021-11-12 10:13 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(
React和ant-design增加了方便查看的小程序指南
)
  <p>小程序?GitHub Trending Hub?是一個(gè)以 Feed 流形式查看 GitHub Trending 倉庫集合的工具,通過(guò)它可以及時(shí)查看最近更新的熱門(mén)倉庫。通過(guò)微信 WeChat 掃碼體驗。
  
為什么要開(kāi)發(fā)?
  相信很多人會(huì )有這樣的疑問(wèn),通過(guò)官方提供的 GitHub Trending 頁(yè)面就能查看,為什么還要開(kāi)發(fā)一個(gè)小程序?細心的同學(xué)可能會(huì )發(fā)現 GitHub Trending 上榜大致是按照當天新增的 Star 數來(lái)確定的,Star 數會(huì )隨著(zhù)時(shí)間變動(dòng),意味著(zhù) Trending 榜單也是隨時(shí)在變的。那么對于像我一樣經(jīng)常瀏覽 GitHub Trending 頁(yè)面的人會(huì )存在一些不便的地方:

  每次訪(fǎng)問(wèn) GitHub Trending 獲取的新倉庫數量相對少,那些比較熱門(mén)的項目往往長(cháng)期霸占 Trending 榜單,有時(shí)候今天看了,需要過(guò)幾天再去看才能在上面發(fā)現一些新的有意思的項目
  對于那些短期出現在 Trending 上的項目由于沒(méi)有及時(shí)查看而丟失了
  不能按多語(yǔ)言過(guò)濾,關(guān)注多個(gè)編程語(yǔ)言的人還是比較多的
  這大概就是最開(kāi)始的需求,希望能夠及時(shí)的追蹤到 GitHub Trending 榜單的變化,形成歷史信息方便查看更新。很自然就會(huì )想到用爬蟲(chóng)解決這個(gè)問(wèn)題,當時(shí)還沒(méi)有小程序,開(kāi)發(fā)小程序是因為工作關(guān)系了解到 Serverless 相關(guān)的知識,同時(shí)微信小程序有對應的云開(kāi)發(fā)方式,迫切希望了解一下具體的應用場(chǎng)景。所以就有了開(kāi)發(fā)這個(gè)小程序的想法。
追蹤網(wǎng)站變化
  除了經(jīng)常瀏覽 GitHub Trending 之外,有時(shí)候也會(huì )看一些技術(shù)博客,比如 GitHub Blog、Kubernetes Blog、CoreOS Blog 等,有的是不提供 RSS 訂閱的(當然我也不是一個(gè) RSS 訂閱的愛(ài)好者),由于不知道什么時(shí)候會(huì )更新,只能空閑時(shí)去查看對應的頁(yè)面比較低效。通過(guò)爬蟲(chóng)可以很好的解決這個(gè)問(wèn)題,但是對于多個(gè)網(wǎng)站都單獨寫(xiě)爬蟲(chóng)比較費勁同時(shí)增加了管理的負擔,所以希望能夠開(kāi)發(fā)一個(gè)通用的爬蟲(chóng)框架,能夠比較簡(jiǎn)單的配置就能新增一個(gè)追蹤網(wǎng)站變化的爬蟲(chóng)。當時(shí)剛好工作上在了解 Prometheus 和 Alermanager,就參考對應的配置,開(kāi)發(fā)了基于 xpath 的爬蟲(chóng)框架,通過(guò)郵件以日報或者周報形式追蹤特定網(wǎng)站的更新。
parsers:
- name: &#39;githubtrending&#39;
base_url: &#39;https://github.com&#39;
base_xpath:
- "//li[@class=&#39;col-12 d-block width-full py-4 border-bottom&#39;]"
attr:
url: &#39;div/h3/a/@href&#39;
repo: &#39;div/h3/a&#39;
desc: "div[@class=&#39;py-1&#39;]/p"
lang: "div/span[@itemprop=&#39;programmingLanguage&#39;]"
star: "div/a[@aria-label=&#39;Stargazers&#39;]"
fork: "div/a[@aria-label=&#39;Forks&#39;]"
today: "div/span[@class=&#39;float-right&#39;]"
</p>
  在后續的工作中,需要參與一些前端的開(kāi)發(fā),所以學(xué)習了React和ant-design,并添加了易于查看的頁(yè)面??梢哉f(shuō),這個(gè)項目和當時(shí)的工作內容是高度契合、相輔相成的。
  
  您可以訪(fǎng)問(wèn)以下體驗:
  項目地址:
  歡迎來(lái)到星叉。如果您有任何問(wèn)題,請提交問(wèn)題。
  微信小程序
  小程序最直觀(guān)的體驗是無(wú)需安裝軟件,在微信中即可快速體驗。當時(shí)trackupdates服務(wù)沒(méi)有服務(wù)器,運行在我自己的電腦上。碎片時(shí)間用手機看很不方便,所以還是滿(mǎn)足自己的需求(程序員是不是先造輪子來(lái)滿(mǎn)足自己的需求?哈哈~)。
  隨著(zhù)產(chǎn)品思維在我工作中的積累,當時(shí)的想法是,既然我要開(kāi)發(fā)一個(gè)對外可用的產(chǎn)品,為什么不滿(mǎn)足自己的需求,同時(shí)也方便別人呢?因此,有必要挖掘和分析需要解決的具體問(wèn)題和痛點(diǎn),以及如何更好地推廣這款產(chǎn)品。
  當時(shí)發(fā)現微信公眾號中的文章對外部鏈接的訪(fǎng)問(wèn)有嚴格的控制。在文章中,所有鏈接都無(wú)法點(diǎn)擊,但小程序的重定向沒(méi)有限制。在小程序中也是如此。一般不允許外鏈跳轉(個(gè)人開(kāi)發(fā)類(lèi)小程序)。同時(shí),我也對已經(jīng)上線(xiàn)的GitHub相關(guān)小程序進(jìn)行了調查。無(wú)一例外,鏈接跳轉都是允許的。有很多問(wèn)題。因此,在小程序的開(kāi)發(fā)過(guò)程中,友好的GitHub鏈接重定向是最重要的關(guān)注和優(yōu)化問(wèn)題,這也是這個(gè)小程序如何推廣的方向。
  目前有GitHub精選和AI研究院兩個(gè)公眾號,可以通過(guò)在文章中附上小程序鏈接,提升訪(fǎng)問(wèn)GitHub倉庫詳情的閱讀體驗。如果您在公眾號文章中分享了GitHub相關(guān)項目,可以?huà)呙枰韵露S碼查看添加小程序指南。
  
  此外,小程序還提供了查看倉庫統計和個(gè)人簡(jiǎn)歷的功能。
  
  
  
  小程序使用微信原生框架開(kāi)發(fā)。如果你想學(xué)習小程序開(kāi)發(fā),應該對你有幫助。
  項目地址:
  歡迎來(lái)到星叉。如果您有任何問(wèn)題,請提交問(wèn)題。
  總結
  這就是GitHub Trending Hub這個(gè)小程序的由來(lái)。在整個(gè)開(kāi)發(fā)過(guò)程中,我覺(jué)得有兩點(diǎn)需要分享:
  GitHub API 設計
  為降低開(kāi)發(fā)成本,提高后續API替換的便利性,GitHub API的返回結果中會(huì )收錄您可能訪(fǎng)問(wèn)的其他API,開(kāi)發(fā)者無(wú)需理解和拼接API。官方解釋如下:
  所有資源都可能有一個(gè)或多個(gè)*_urlproperties 鏈接到其他資源。這些旨在提供顯式 URL,以便適當的 API 客戶(hù)端不需要自己構建 URL。強烈建議 API 客戶(hù)端使用這些。這樣做將使開(kāi)發(fā)人員在未來(lái)升級 API 時(shí)更容易。所有 URL 都應該是正確的 RFC 6570URI 模板。
  
{
"id": 1296269,
"name": "Hello-World",
"full_name": "octocat/Hello-World",
"html_url": "https://github.com/octocat/Hello-World",
"description": "This your first repo!",
"url": "https://api.github.com/repos/o ... ot%3B,
"archive_url": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}",
"assignees_url": "http://api.github.com/repos/oc ... gnees{/user}"
}
  對我的整體啟發(fā)是,設計 API 是一門(mén)學(xué)問(wèn),讓開(kāi)發(fā)者更容易使用 API 也很重要?,F在GitHub已經(jīng)推薦使用GraphQL API v4版本,小程序API向GraphQL版本的遷移已經(jīng)收錄在接下來(lái)的學(xué)習計劃中。
  小程序云開(kāi)發(fā)
  云開(kāi)發(fā)中將常用的基礎組件打包,如數據庫、存儲、無(wú)服務(wù)框架、監控和數據統計報表等,大大簡(jiǎn)化了服務(wù)的運維部署成本。您無(wú)需關(guān)心服務(wù)在何處運行或是否需要擴展。讓開(kāi)發(fā)更加關(guān)注業(yè)務(wù)邏輯。下面是一個(gè)簡(jiǎn)單的服務(wù):
  const cloud = require(&#39;wx-server-sdk&#39;)
exports.main = async (event, context) => ({
sum: event.a + event.b
})
  但相對來(lái)說(shuō),成熟度還不夠。如果遇到問(wèn)題,查找起來(lái)會(huì )比較困難。比如遇到小程序被爬蟲(chóng)爬取的API(后來(lái)發(fā)現是微信自己的爬蟲(chóng),尷尬~),導致云開(kāi)發(fā)包流量瞬間用光,不好由于云開(kāi)發(fā)暴露的能力有限 排查并解決此問(wèn)題。
  最后貼個(gè)二維碼,歡迎掃碼體驗
   查看全部

  querylist采集微信公眾號文章(
React和ant-design增加了方便查看的小程序指南
)
  <p>小程序?GitHub Trending Hub?是一個(gè)以 Feed 流形式查看 GitHub Trending 倉庫集合的工具,通過(guò)它可以及時(shí)查看最近更新的熱門(mén)倉庫。通過(guò)微信 WeChat 掃碼體驗。
  
為什么要開(kāi)發(fā)?
  相信很多人會(huì )有這樣的疑問(wèn),通過(guò)官方提供的 GitHub Trending 頁(yè)面就能查看,為什么還要開(kāi)發(fā)一個(gè)小程序?細心的同學(xué)可能會(huì )發(fā)現 GitHub Trending 上榜大致是按照當天新增的 Star 數來(lái)確定的,Star 數會(huì )隨著(zhù)時(shí)間變動(dòng),意味著(zhù) Trending 榜單也是隨時(shí)在變的。那么對于像我一樣經(jīng)常瀏覽 GitHub Trending 頁(yè)面的人會(huì )存在一些不便的地方:

  每次訪(fǎng)問(wèn) GitHub Trending 獲取的新倉庫數量相對少,那些比較熱門(mén)的項目往往長(cháng)期霸占 Trending 榜單,有時(shí)候今天看了,需要過(guò)幾天再去看才能在上面發(fā)現一些新的有意思的項目
  對于那些短期出現在 Trending 上的項目由于沒(méi)有及時(shí)查看而丟失了
  不能按多語(yǔ)言過(guò)濾,關(guān)注多個(gè)編程語(yǔ)言的人還是比較多的
  這大概就是最開(kāi)始的需求,希望能夠及時(shí)的追蹤到 GitHub Trending 榜單的變化,形成歷史信息方便查看更新。很自然就會(huì )想到用爬蟲(chóng)解決這個(gè)問(wèn)題,當時(shí)還沒(méi)有小程序,開(kāi)發(fā)小程序是因為工作關(guān)系了解到 Serverless 相關(guān)的知識,同時(shí)微信小程序有對應的云開(kāi)發(fā)方式,迫切希望了解一下具體的應用場(chǎng)景。所以就有了開(kāi)發(fā)這個(gè)小程序的想法。
追蹤網(wǎng)站變化
  除了經(jīng)常瀏覽 GitHub Trending 之外,有時(shí)候也會(huì )看一些技術(shù)博客,比如 GitHub Blog、Kubernetes Blog、CoreOS Blog 等,有的是不提供 RSS 訂閱的(當然我也不是一個(gè) RSS 訂閱的愛(ài)好者),由于不知道什么時(shí)候會(huì )更新,只能空閑時(shí)去查看對應的頁(yè)面比較低效。通過(guò)爬蟲(chóng)可以很好的解決這個(gè)問(wèn)題,但是對于多個(gè)網(wǎng)站都單獨寫(xiě)爬蟲(chóng)比較費勁同時(shí)增加了管理的負擔,所以希望能夠開(kāi)發(fā)一個(gè)通用的爬蟲(chóng)框架,能夠比較簡(jiǎn)單的配置就能新增一個(gè)追蹤網(wǎng)站變化的爬蟲(chóng)。當時(shí)剛好工作上在了解 Prometheus 和 Alermanager,就參考對應的配置,開(kāi)發(fā)了基于 xpath 的爬蟲(chóng)框架,通過(guò)郵件以日報或者周報形式追蹤特定網(wǎng)站的更新。
parsers:
- name: &#39;githubtrending&#39;
base_url: &#39;https://github.com&#39;
base_xpath:
- "//li[@class=&#39;col-12 d-block width-full py-4 border-bottom&#39;]"
attr:
url: &#39;div/h3/a/@href&#39;
repo: &#39;div/h3/a&#39;
desc: "div[@class=&#39;py-1&#39;]/p"
lang: "div/span[@itemprop=&#39;programmingLanguage&#39;]"
star: "div/a[@aria-label=&#39;Stargazers&#39;]"
fork: "div/a[@aria-label=&#39;Forks&#39;]"
today: "div/span[@class=&#39;float-right&#39;]"
</p>
  在后續的工作中,需要參與一些前端的開(kāi)發(fā),所以學(xué)習了React和ant-design,并添加了易于查看的頁(yè)面??梢哉f(shuō),這個(gè)項目和當時(shí)的工作內容是高度契合、相輔相成的。
  
  您可以訪(fǎng)問(wèn)以下體驗:
  項目地址:
  歡迎來(lái)到星叉。如果您有任何問(wèn)題,請提交問(wèn)題。
  微信小程序
  小程序最直觀(guān)的體驗是無(wú)需安裝軟件,在微信中即可快速體驗。當時(shí)trackupdates服務(wù)沒(méi)有服務(wù)器,運行在我自己的電腦上。碎片時(shí)間用手機看很不方便,所以還是滿(mǎn)足自己的需求(程序員是不是先造輪子來(lái)滿(mǎn)足自己的需求?哈哈~)。
  隨著(zhù)產(chǎn)品思維在我工作中的積累,當時(shí)的想法是,既然我要開(kāi)發(fā)一個(gè)對外可用的產(chǎn)品,為什么不滿(mǎn)足自己的需求,同時(shí)也方便別人呢?因此,有必要挖掘和分析需要解決的具體問(wèn)題和痛點(diǎn),以及如何更好地推廣這款產(chǎn)品。
  當時(shí)發(fā)現微信公眾號中的文章對外部鏈接的訪(fǎng)問(wèn)有嚴格的控制。在文章中,所有鏈接都無(wú)法點(diǎn)擊,但小程序的重定向沒(méi)有限制。在小程序中也是如此。一般不允許外鏈跳轉(個(gè)人開(kāi)發(fā)類(lèi)小程序)。同時(shí),我也對已經(jīng)上線(xiàn)的GitHub相關(guān)小程序進(jìn)行了調查。無(wú)一例外,鏈接跳轉都是允許的。有很多問(wèn)題。因此,在小程序的開(kāi)發(fā)過(guò)程中,友好的GitHub鏈接重定向是最重要的關(guān)注和優(yōu)化問(wèn)題,這也是這個(gè)小程序如何推廣的方向。
  目前有GitHub精選和AI研究院兩個(gè)公眾號,可以通過(guò)在文章中附上小程序鏈接,提升訪(fǎng)問(wèn)GitHub倉庫詳情的閱讀體驗。如果您在公眾號文章中分享了GitHub相關(guān)項目,可以?huà)呙枰韵露S碼查看添加小程序指南。
  
  此外,小程序還提供了查看倉庫統計和個(gè)人簡(jiǎn)歷的功能。
  
  
  
  小程序使用微信原生框架開(kāi)發(fā)。如果你想學(xué)習小程序開(kāi)發(fā),應該對你有幫助。
  項目地址:
  歡迎來(lái)到星叉。如果您有任何問(wèn)題,請提交問(wèn)題。
  總結
  這就是GitHub Trending Hub這個(gè)小程序的由來(lái)。在整個(gè)開(kāi)發(fā)過(guò)程中,我覺(jué)得有兩點(diǎn)需要分享:
  GitHub API 設計
  為降低開(kāi)發(fā)成本,提高后續API替換的便利性,GitHub API的返回結果中會(huì )收錄您可能訪(fǎng)問(wèn)的其他API,開(kāi)發(fā)者無(wú)需理解和拼接API。官方解釋如下:
  所有資源都可能有一個(gè)或多個(gè)*_urlproperties 鏈接到其他資源。這些旨在提供顯式 URL,以便適當的 API 客戶(hù)端不需要自己構建 URL。強烈建議 API 客戶(hù)端使用這些。這樣做將使開(kāi)發(fā)人員在未來(lái)升級 API 時(shí)更容易。所有 URL 都應該是正確的 RFC 6570URI 模板。
  
{
"id": 1296269,
"name": "Hello-World",
"full_name": "octocat/Hello-World",
"html_url": "https://github.com/octocat/Hello-World",
"description": "This your first repo!",
"url": "https://api.github.com/repos/o ... ot%3B,
"archive_url": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}",
"assignees_url": "http://api.github.com/repos/oc ... gnees{/user}"
}
  對我的整體啟發(fā)是,設計 API 是一門(mén)學(xué)問(wèn),讓開(kāi)發(fā)者更容易使用 API 也很重要?,F在GitHub已經(jīng)推薦使用GraphQL API v4版本,小程序API向GraphQL版本的遷移已經(jīng)收錄在接下來(lái)的學(xué)習計劃中。
  小程序云開(kāi)發(fā)
  云開(kāi)發(fā)中將常用的基礎組件打包,如數據庫、存儲、無(wú)服務(wù)框架、監控和數據統計報表等,大大簡(jiǎn)化了服務(wù)的運維部署成本。您無(wú)需關(guān)心服務(wù)在何處運行或是否需要擴展。讓開(kāi)發(fā)更加關(guān)注業(yè)務(wù)邏輯。下面是一個(gè)簡(jiǎn)單的服務(wù):
  const cloud = require(&#39;wx-server-sdk&#39;)
exports.main = async (event, context) => ({
sum: event.a + event.b
})
  但相對來(lái)說(shuō),成熟度還不夠。如果遇到問(wèn)題,查找起來(lái)會(huì )比較困難。比如遇到小程序被爬蟲(chóng)爬取的API(后來(lái)發(fā)現是微信自己的爬蟲(chóng),尷尬~),導致云開(kāi)發(fā)包流量瞬間用光,不好由于云開(kāi)發(fā)暴露的能力有限 排查并解決此問(wèn)題。
  最后貼個(gè)二維碼,歡迎掃碼體驗
  

querylist采集微信公眾號文章(Python模擬安卓App操作微信App的方法(詳見(jiàn)代碼介紹))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 199 次瀏覽 ? 2021-11-11 15:04 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(Python模擬安卓App操作微信App的方法(詳見(jiàn)代碼介紹))
  本文文章主要介紹了基于Python采集的微信公眾號歷史數據爬取。文章中介紹的示例代碼非常詳細,對大家的學(xué)習或工作有一定的參考學(xué)習價(jià)值。有需要的朋友可以參考
  鯤志鵬的技術(shù)人員將在本文中介紹一種采集通過(guò)模擬微信App的操作來(lái)指定公眾號所有歷史數據的方法。
  通過(guò)我們的抓包分析,我們發(fā)現微信公眾號的歷史數據是通過(guò)HTTP協(xié)議加載的。對應的API接口如下圖所示,其中有四個(gè)關(guān)鍵參數(__biz、appmsg_token、pass_ticket、Cookie)。
  
  為了能夠得到這四個(gè)參數,我們需要模擬App的運行,讓它生成這些參數,然后我們就可以抓包了。對于模擬App操作,我們介紹了通過(guò)Python模擬Android App的方法(詳見(jiàn)詳情)。對于 HTTP 集成捕獲,我們之前已經(jīng)引入了 Mitmproxy(查看詳情)。
  我們需要模擬微信的操作來(lái)完成以下步驟:
  1. 推出微信應用
  2. 點(diǎn)擊“聯(lián)系人”
  3. 點(diǎn)擊“公眾號”
  4.點(diǎn)擊公眾號進(jìn)入采集
  5. 點(diǎn)擊右上角的用戶(hù)頭像圖標
  6. 點(diǎn)擊“所有消息”
  
  
  此時(shí),我們可以從響應數據中捕捉到__biz、appmsg_token、pass_ticket這三個(gè)關(guān)鍵參數,以及請求頭中的Cookie值。如下所示。
  
  
  有了以上四個(gè)參數,我們就可以構造一個(gè)API請求來(lái)獲取歷史文章列表,通過(guò)調用API接口直接獲取數據(無(wú)需模擬App操作)。核心參數如下。通過(guò)改變偏移參數,可以得到所有的歷史數據。
   # Cookie headers = {'Cookie': 'rewardsn=; wxtokenkey=777; wxuin=584068438; devicetype=android-19; version=26060736; lang=zh_CN; pass_ticket=Rr8cO5c2******3tKGqe7aVZzV9TupvrK+1uHHmHYQGL2WFdKIE; wap_sid2=COKhxu4KElxckFZQ3QzTHU4WThEUk0zcWdrZjhGcUdYdEVSV3Y1X2NPWHNUakRrd1ZzMnpLTERpdE5rbmxjSTg******dlRBcUNRazZpOGxTZUVEQUTgNQJVO'} url = 'https://mp.weixin.qq.com/mp/profile_ext?' data = {} data['is_ok'] = '1' data['count'] = '10' data['wxtoken'] = '' data['f'] = 'json' data['scene'] = '124' data['uin'] = '777' data['key'] = '777' data['offset'] = '0' data['action'] = 'getmsg' data['x5'] = '0' # 下面三個(gè)參數需要替換 # https://mp.weixin.qq.com/mp/pr ... Dhome應答數據里會(huì )暴漏這三個(gè)參數 data['__biz'] = 'MjM5MzQyOTM1OQ==' data['appmsg_token'] = '993_V8%2BEmfVD7g%2FvMZ****4DNUJNFkg~~' data['pass_ticket'] = 'Rr8cO5c23ZngeQHRGy8E7gv*****pvrK+1uHHmHYQGL2WFdKIE' url = url + urllib.urlencode(data)
  以“數字工廠(chǎng)”微信公眾號為例,采集的過(guò)程截圖如下:
  
  輸出結果截圖如下:
  
  以上就是基于Python采集爬取微信公眾號歷史數據的詳細內容。更多詳情請關(guān)注其他相關(guān)html中文網(wǎng)站文章! 查看全部

  querylist采集微信公眾號文章(Python模擬安卓App操作微信App的方法(詳見(jiàn)代碼介紹))
  本文文章主要介紹了基于Python采集的微信公眾號歷史數據爬取。文章中介紹的示例代碼非常詳細,對大家的學(xué)習或工作有一定的參考學(xué)習價(jià)值。有需要的朋友可以參考
  鯤志鵬的技術(shù)人員將在本文中介紹一種采集通過(guò)模擬微信App的操作來(lái)指定公眾號所有歷史數據的方法。
  通過(guò)我們的抓包分析,我們發(fā)現微信公眾號的歷史數據是通過(guò)HTTP協(xié)議加載的。對應的API接口如下圖所示,其中有四個(gè)關(guān)鍵參數(__biz、appmsg_token、pass_ticket、Cookie)。
  
  為了能夠得到這四個(gè)參數,我們需要模擬App的運行,讓它生成這些參數,然后我們就可以抓包了。對于模擬App操作,我們介紹了通過(guò)Python模擬Android App的方法(詳見(jiàn)詳情)。對于 HTTP 集成捕獲,我們之前已經(jīng)引入了 Mitmproxy(查看詳情)。
  我們需要模擬微信的操作來(lái)完成以下步驟:
  1. 推出微信應用
  2. 點(diǎn)擊“聯(lián)系人”
  3. 點(diǎn)擊“公眾號”
  4.點(diǎn)擊公眾號進(jìn)入采集
  5. 點(diǎn)擊右上角的用戶(hù)頭像圖標
  6. 點(diǎn)擊“所有消息”
  
  
  此時(shí),我們可以從響應數據中捕捉到__biz、appmsg_token、pass_ticket這三個(gè)關(guān)鍵參數,以及請求頭中的Cookie值。如下所示。
  
  
  有了以上四個(gè)參數,我們就可以構造一個(gè)API請求來(lái)獲取歷史文章列表,通過(guò)調用API接口直接獲取數據(無(wú)需模擬App操作)。核心參數如下。通過(guò)改變偏移參數,可以得到所有的歷史數據。
   # Cookie headers = {'Cookie': 'rewardsn=; wxtokenkey=777; wxuin=584068438; devicetype=android-19; version=26060736; lang=zh_CN; pass_ticket=Rr8cO5c2******3tKGqe7aVZzV9TupvrK+1uHHmHYQGL2WFdKIE; wap_sid2=COKhxu4KElxckFZQ3QzTHU4WThEUk0zcWdrZjhGcUdYdEVSV3Y1X2NPWHNUakRrd1ZzMnpLTERpdE5rbmxjSTg******dlRBcUNRazZpOGxTZUVEQUTgNQJVO'} url = 'https://mp.weixin.qq.com/mp/profile_ext?' data = {} data['is_ok'] = '1' data['count'] = '10' data['wxtoken'] = '' data['f'] = 'json' data['scene'] = '124' data['uin'] = '777' data['key'] = '777' data['offset'] = '0' data['action'] = 'getmsg' data['x5'] = '0' # 下面三個(gè)參數需要替換 # https://mp.weixin.qq.com/mp/pr ... Dhome應答數據里會(huì )暴漏這三個(gè)參數 data['__biz'] = 'MjM5MzQyOTM1OQ==' data['appmsg_token'] = '993_V8%2BEmfVD7g%2FvMZ****4DNUJNFkg~~' data['pass_ticket'] = 'Rr8cO5c23ZngeQHRGy8E7gv*****pvrK+1uHHmHYQGL2WFdKIE' url = url + urllib.urlencode(data)
  以“數字工廠(chǎng)”微信公眾號為例,采集的過(guò)程截圖如下:
  
  輸出結果截圖如下:
  
  以上就是基于Python采集爬取微信公眾號歷史數據的詳細內容。更多詳情請關(guān)注其他相關(guān)html中文網(wǎng)站文章!

querylist采集微信公眾號文章(微信公眾號后臺編輯素材界面的程序利用程序 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 130 次瀏覽 ? 2021-11-11 11:07 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信公眾號后臺編輯素材界面的程序利用程序
)
  準備階段
  為了實(shí)現爬蟲(chóng)我們需要使用以下工具
  另外,這個(gè)爬蟲(chóng)程序使用了微信公眾號后臺編輯素材接口。原理是當我們插入超鏈接時(shí),微信會(huì )調用一個(gè)特殊的API(見(jiàn)下圖)來(lái)獲取指定公眾號的文章列表。因此,我們還需要有一個(gè)公眾號。
  
  圖。1
  正式開(kāi)始
  我們需要登錄微信公眾號,點(diǎn)擊素材管理,點(diǎn)擊新建圖文消息,然后點(diǎn)擊上面的超鏈接。
  
  圖2
  接下來(lái),按 F12 打開(kāi) Chrome 的開(kāi)發(fā)者工具并選擇網(wǎng)絡(luò )
  
  圖3
  此時(shí),在之前的超鏈接界面,點(diǎn)擊“選擇其他公眾號”,輸入你需要爬取的公眾號(例如中國移動(dòng))
  
  圖4
  這時(shí)候之前的Network會(huì )刷新一些鏈接,其中以“appmsg”開(kāi)頭的內容就是我們需要分析的
  
  圖5
  我們解析請求的 URL
  https://mp.weixin.qq.com/cgi-b ... x%3D1
  它分為三個(gè)部分
  通過(guò)不斷瀏覽下一頁(yè),我們發(fā)現每次只有begin會(huì )改變,每次增加5,這就是count的值。
  接下來(lái)我們使用Python獲取同樣的資源,但是直接運行下面的代碼是無(wú)法獲取資源的
  import requests
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B
requests.get(url).json()
# {'base_resp': {'ret': 200003, 'err_msg': 'invalid session'}}
  之所以能在瀏覽器上獲取資源,是因為我們登錄了微信公眾號后端。而Python沒(méi)有我們的登錄信息,所以請求無(wú)效。我們需要在requests中設置headers參數,傳入Cookie和User-Agent來(lái)模擬登錄
  由于頭信息的內容每次都會(huì )變化,我把這些內容放在一個(gè)單獨的文件中,即“wechat.yaml”,信息如下
  cookie: ua_id=wuzWM9FKE14...
user_agent: Mozilla/5.0...
  只需要事后閱讀
  # 讀取cookie和user_agent
import yaml
with open("wechat.yaml", "r") as file:
file_data = file.read()
config = yaml.safe_load(file_data)
headers = {
"Cookie": config['cookie'],
"User-Agent": config['user_agent']
}
requests.get(url, headers=headers, verify=False).json()
  在返回的JSON中,我們可以看到每個(gè)文章的標題(title)、摘要(digest)、鏈接(link)、推送時(shí)間(update_time)和封面地址(cover)。
  appmsgid 是每條推文的唯一標識符,aid 是每條推文的唯一標識符。
  
  圖6
  其實(shí)除了cookies,URL中的token參數也會(huì )用來(lái)限制爬蟲(chóng),所以上面代碼的輸出很可能是{'base_resp': {'ret': 200040,'err_msg':'無(wú)效的 csrf 令牌'} }
  然后我們寫(xiě)一個(gè)循環(huán),獲取文章的所有JSON并保存。
  import json
import requests
import time
import random
import yaml
with open("wechat.yaml", "r") as file:
file_data = file.read()
config = yaml.safe_load(file_data)
headers = {
"Cookie": config['cookie'],
"User-Agent": config['user_agent']
}
# 請求參數
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
begin = "0"
params = {
"action": "list_ex",
"begin": begin,
"count": "5",
"fakeid": config['fakeid'],
"type": "9",
"token": config['token'],
"lang": "zh_CN",
"f": "json",
"ajax": "1"
}
# 存放結果
app_msg_list = []
# 在不知道公眾號有多少文章的情況下,使用while語(yǔ)句
# 也方便重新運行時(shí)設置頁(yè)數
i = 0
while True:
begin = i * 5
params["begin"] = str(begin)
# 隨機暫停幾秒,避免過(guò)快的請求導致過(guò)快的被查到
time.sleep(random.randint(1,10))
resp = requests.get(url, headers=headers, params = params, verify=False)
# 微信流量控制, 退出
if resp.json()['base_resp']['ret'] == 200013:
print("frequencey control, stop at {}".format(str(begin)))
break

# 如果返回的內容中為空則結束
if len(resp.json()['app_msg_list']) == 0:
print("all ariticle parsed")
break

app_msg_list.append(resp.json())
# 翻頁(yè)
i += 1
  在上面的代碼中,我還在“wechat.yaml”文件中存儲了fakeid和token。這是因為fakeid是每個(gè)公眾號的唯一標識,token會(huì )經(jīng)常變化,信息可以通過(guò)解析URL獲取,也可以從開(kāi)發(fā)者工具查看
  
  圖7
  爬了一段時(shí)間后,會(huì )遇到以下問(wèn)題
  {'base_resp': {'err_msg': 'freq control', 'ret': 200013}}
  此時(shí),當你嘗試在公眾號后臺插入超鏈接時(shí),會(huì )遇到如下提示
  
  圖8
  這是公眾號的流量限制,一般需要30-60分鐘才能繼續。為了完美處理這個(gè)問(wèn)題,你可能需要申請多個(gè)公眾號,可能需要對抗微信公眾號登錄系統,也可能需要設置代理池。
  但是我不需要工業(yè)級的爬蟲(chóng),我只想爬取自己的公眾號信息,所以等了一個(gè)小時(shí),再次登錄公眾號,獲取cookie和token,運行。我不想用自己的興趣挑戰別人的工作。
  最后,將結果保存為 JSON 格式。
  # 保存結果為JSON
json_name = "mp_data_{}.json".format(str(begin))
with open(json_name, "w") as file:
file.write(json.dumps(app_msg_list, indent=2, ensure_ascii=False))
  或者提取文章標識符、標題、URL、發(fā)布時(shí)間四列,保存為CSV。
  info_list = []
for msg in app_msg_list:
if "app_msg_list" in msg:
for item in msg["app_msg_list"]:
info = '"{}","{}","{}","{}"'.format(str(item["aid"]), item['title'], item['link'], str(item['create_time']))
info_list.append(info)
# save as csv
with open("app_msg_list.csv", "w") as file:
file.writelines("\n".join(info_list)) 查看全部

  querylist采集微信公眾號文章(微信公眾號后臺編輯素材界面的程序利用程序
)
  準備階段
  為了實(shí)現爬蟲(chóng)我們需要使用以下工具
  另外,這個(gè)爬蟲(chóng)程序使用了微信公眾號后臺編輯素材接口。原理是當我們插入超鏈接時(shí),微信會(huì )調用一個(gè)特殊的API(見(jiàn)下圖)來(lái)獲取指定公眾號的文章列表。因此,我們還需要有一個(gè)公眾號。
  
  圖。1
  正式開(kāi)始
  我們需要登錄微信公眾號,點(diǎn)擊素材管理,點(diǎn)擊新建圖文消息,然后點(diǎn)擊上面的超鏈接。
  
  圖2
  接下來(lái),按 F12 打開(kāi) Chrome 的開(kāi)發(fā)者工具并選擇網(wǎng)絡(luò )
  
  圖3
  此時(shí),在之前的超鏈接界面,點(diǎn)擊“選擇其他公眾號”,輸入你需要爬取的公眾號(例如中國移動(dòng))
  
  圖4
  這時(shí)候之前的Network會(huì )刷新一些鏈接,其中以“appmsg”開(kāi)頭的內容就是我們需要分析的
  
  圖5
  我們解析請求的 URL
  https://mp.weixin.qq.com/cgi-b ... x%3D1
  它分為三個(gè)部分
  通過(guò)不斷瀏覽下一頁(yè),我們發(fā)現每次只有begin會(huì )改變,每次增加5,這就是count的值。
  接下來(lái)我們使用Python獲取同樣的資源,但是直接運行下面的代碼是無(wú)法獲取資源的
  import requests
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B
requests.get(url).json()
# {'base_resp': {'ret': 200003, 'err_msg': 'invalid session'}}
  之所以能在瀏覽器上獲取資源,是因為我們登錄了微信公眾號后端。而Python沒(méi)有我們的登錄信息,所以請求無(wú)效。我們需要在requests中設置headers參數,傳入Cookie和User-Agent來(lái)模擬登錄
  由于頭信息的內容每次都會(huì )變化,我把這些內容放在一個(gè)單獨的文件中,即“wechat.yaml”,信息如下
  cookie: ua_id=wuzWM9FKE14...
user_agent: Mozilla/5.0...
  只需要事后閱讀
  # 讀取cookie和user_agent
import yaml
with open("wechat.yaml", "r") as file:
file_data = file.read()
config = yaml.safe_load(file_data)
headers = {
"Cookie": config['cookie'],
"User-Agent": config['user_agent']
}
requests.get(url, headers=headers, verify=False).json()
  在返回的JSON中,我們可以看到每個(gè)文章的標題(title)、摘要(digest)、鏈接(link)、推送時(shí)間(update_time)和封面地址(cover)。
  appmsgid 是每條推文的唯一標識符,aid 是每條推文的唯一標識符。
  
  圖6
  其實(shí)除了cookies,URL中的token參數也會(huì )用來(lái)限制爬蟲(chóng),所以上面代碼的輸出很可能是{'base_resp': {'ret': 200040,'err_msg':'無(wú)效的 csrf 令牌'} }
  然后我們寫(xiě)一個(gè)循環(huán),獲取文章的所有JSON并保存。
  import json
import requests
import time
import random
import yaml
with open("wechat.yaml", "r") as file:
file_data = file.read()
config = yaml.safe_load(file_data)
headers = {
"Cookie": config['cookie'],
"User-Agent": config['user_agent']
}
# 請求參數
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
begin = "0"
params = {
"action": "list_ex",
"begin": begin,
"count": "5",
"fakeid": config['fakeid'],
"type": "9",
"token": config['token'],
"lang": "zh_CN",
"f": "json",
"ajax": "1"
}
# 存放結果
app_msg_list = []
# 在不知道公眾號有多少文章的情況下,使用while語(yǔ)句
# 也方便重新運行時(shí)設置頁(yè)數
i = 0
while True:
begin = i * 5
params["begin"] = str(begin)
# 隨機暫停幾秒,避免過(guò)快的請求導致過(guò)快的被查到
time.sleep(random.randint(1,10))
resp = requests.get(url, headers=headers, params = params, verify=False)
# 微信流量控制, 退出
if resp.json()['base_resp']['ret'] == 200013:
print("frequencey control, stop at {}".format(str(begin)))
break

# 如果返回的內容中為空則結束
if len(resp.json()['app_msg_list']) == 0:
print("all ariticle parsed")
break

app_msg_list.append(resp.json())
# 翻頁(yè)
i += 1
  在上面的代碼中,我還在“wechat.yaml”文件中存儲了fakeid和token。這是因為fakeid是每個(gè)公眾號的唯一標識,token會(huì )經(jīng)常變化,信息可以通過(guò)解析URL獲取,也可以從開(kāi)發(fā)者工具查看
  
  圖7
  爬了一段時(shí)間后,會(huì )遇到以下問(wèn)題
  {'base_resp': {'err_msg': 'freq control', 'ret': 200013}}
  此時(shí),當你嘗試在公眾號后臺插入超鏈接時(shí),會(huì )遇到如下提示
  
  圖8
  這是公眾號的流量限制,一般需要30-60分鐘才能繼續。為了完美處理這個(gè)問(wèn)題,你可能需要申請多個(gè)公眾號,可能需要對抗微信公眾號登錄系統,也可能需要設置代理池。
  但是我不需要工業(yè)級的爬蟲(chóng),我只想爬取自己的公眾號信息,所以等了一個(gè)小時(shí),再次登錄公眾號,獲取cookie和token,運行。我不想用自己的興趣挑戰別人的工作。
  最后,將結果保存為 JSON 格式。
  # 保存結果為JSON
json_name = "mp_data_{}.json".format(str(begin))
with open(json_name, "w") as file:
file.write(json.dumps(app_msg_list, indent=2, ensure_ascii=False))
  或者提取文章標識符、標題、URL、發(fā)布時(shí)間四列,保存為CSV。
  info_list = []
for msg in app_msg_list:
if "app_msg_list" in msg:
for item in msg["app_msg_list"]:
info = '"{}","{}","{}","{}"'.format(str(item["aid"]), item['title'], item['link'], str(item['create_time']))
info_list.append(info)
# save as csv
with open("app_msg_list.csv", "w") as file:
file.writelines("\n".join(info_list))

querylist采集微信公眾號文章(采集微信公眾號文章如何批量采集其他微信歷史內容?)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 166 次瀏覽 ? 2021-11-09 10:02 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(采集微信公眾號文章如何批量采集其他微信歷史內容?)
  隨著(zhù)互聯(lián)網(wǎng)時(shí)代的到來(lái),很多人開(kāi)始使用智能手機,微信的使用也逐漸增多。這時(shí)候微信的一些功能會(huì )有助于實(shí)現營(yíng)銷(xiāo),比如微信公眾號,那么如何采集微信公眾號文章呢?下面說(shuō)一下圖圖數據。
  
  采集微信公眾號文章
  如何批量處理采集微信公眾號歷史內容
  首先,第一個(gè)是采集閱讀數和點(diǎn)贊數非常寶貴。因此,文章獲取采集的讀取計數的機制受到2秒的限制。2秒內你有一個(gè)采集微信數據,微信不會(huì )理你,但如果你快,他會(huì )給你303響應,并返回空數據給你。讓你采集什么都沒(méi)有,然后就是不用采集讀號獲取文章列表的速度。這個(gè)速度在前期沒(méi)有限制。當您獲得更多采集時(shí),您的微信ID將被限制。我們的軟件對相關(guān)的采集做了一個(gè)可設置的時(shí)間限制。所以盡量使用這些限制。畢竟微信還需要做很多事情,它必須受到保護。限制登錄是一方面,限制采集數據是一方面,采集數據等待2分鐘。如果仍然頻繁,則為5分鐘。不管多久,估計都不會(huì )再有了。你的微信最多只能明天登錄。
  如何使用微信公眾號文章使用小程序進(jìn)行流量分流?
  1、小程序有較大的搜索流量入口,方便用戶(hù)瀏覽。
  2.微信公眾號的文章會(huì )自動(dòng)生成下圖的小程序界面,文章會(huì )自動(dòng)采集自己的公眾號群發(fā)&lt; @文章、瀏覽、點(diǎn)贊、評論所有文章同步的公眾號自動(dòng)分類(lèi),可以更好的展示你過(guò)去發(fā)布的微信文章,方便統一展示.
  3、對于自媒體和流量主來(lái)說(shuō),經(jīng)常發(fā)布高質(zhì)量的文章更容易留住客戶(hù),又可以擴大廣告,再次賺錢(qián)。
  4.可以轉公眾號。
  
  采集微信公眾號文章
  如何采集其他微信公眾號文章到微信編輯
  一、獲取文章的鏈接
  電腦用戶(hù)可以直接全選并復制瀏覽器地址欄中的文章鏈接。
  手機用戶(hù)可以點(diǎn)擊右上角的菜單按鈕,選擇復制鏈接,將鏈接發(fā)送到電腦。
  二、點(diǎn)擊采集文章按鈕
  1.編輯菜單右上角的采集文章按鈕。
  2.右側功能按鈕底部的采集文章按鈕。
  三、粘貼文章鏈接并點(diǎn)擊采集
  采集 完成后可以編輯修改文章。
  通過(guò)以上拖圖數據的介紹,我們了解到了采集微信公眾號文章的相關(guān)內容。只有了解微信公眾號的功能和用途,才能更好的保證文章采集。
  持續關(guān)注更多資訊和知識點(diǎn),關(guān)注自媒體網(wǎng)吧爆文采集平臺、自媒體文章采集平臺、公眾號查詢(xún)、公眾號轉載他人的原創(chuàng )文章、公眾號歷史文章等知識點(diǎn)。 查看全部

  querylist采集微信公眾號文章(采集微信公眾號文章如何批量采集其他微信歷史內容?)
  隨著(zhù)互聯(lián)網(wǎng)時(shí)代的到來(lái),很多人開(kāi)始使用智能手機,微信的使用也逐漸增多。這時(shí)候微信的一些功能會(huì )有助于實(shí)現營(yíng)銷(xiāo),比如微信公眾號,那么如何采集微信公眾號文章呢?下面說(shuō)一下圖圖數據。
  
  采集微信公眾號文章
  如何批量處理采集微信公眾號歷史內容
  首先,第一個(gè)是采集閱讀數和點(diǎn)贊數非常寶貴。因此,文章獲取采集的讀取計數的機制受到2秒的限制。2秒內你有一個(gè)采集微信數據,微信不會(huì )理你,但如果你快,他會(huì )給你303響應,并返回空數據給你。讓你采集什么都沒(méi)有,然后就是不用采集讀號獲取文章列表的速度。這個(gè)速度在前期沒(méi)有限制。當您獲得更多采集時(shí),您的微信ID將被限制。我們的軟件對相關(guān)的采集做了一個(gè)可設置的時(shí)間限制。所以盡量使用這些限制。畢竟微信還需要做很多事情,它必須受到保護。限制登錄是一方面,限制采集數據是一方面,采集數據等待2分鐘。如果仍然頻繁,則為5分鐘。不管多久,估計都不會(huì )再有了。你的微信最多只能明天登錄。
  如何使用微信公眾號文章使用小程序進(jìn)行流量分流?
  1、小程序有較大的搜索流量入口,方便用戶(hù)瀏覽。
  2.微信公眾號的文章會(huì )自動(dòng)生成下圖的小程序界面,文章會(huì )自動(dòng)采集自己的公眾號群發(fā)&lt; @文章、瀏覽、點(diǎn)贊、評論所有文章同步的公眾號自動(dòng)分類(lèi),可以更好的展示你過(guò)去發(fā)布的微信文章,方便統一展示.
  3、對于自媒體和流量主來(lái)說(shuō),經(jīng)常發(fā)布高質(zhì)量的文章更容易留住客戶(hù),又可以擴大廣告,再次賺錢(qián)。
  4.可以轉公眾號。
  
  采集微信公眾號文章
  如何采集其他微信公眾號文章到微信編輯
  一、獲取文章的鏈接
  電腦用戶(hù)可以直接全選并復制瀏覽器地址欄中的文章鏈接。
  手機用戶(hù)可以點(diǎn)擊右上角的菜單按鈕,選擇復制鏈接,將鏈接發(fā)送到電腦。
  二、點(diǎn)擊采集文章按鈕
  1.編輯菜單右上角的采集文章按鈕。
  2.右側功能按鈕底部的采集文章按鈕。
  三、粘貼文章鏈接并點(diǎn)擊采集
  采集 完成后可以編輯修改文章。
  通過(guò)以上拖圖數據的介紹,我們了解到了采集微信公眾號文章的相關(guān)內容。只有了解微信公眾號的功能和用途,才能更好的保證文章采集。
  持續關(guān)注更多資訊和知識點(diǎn),關(guān)注自媒體網(wǎng)吧爆文采集平臺、自媒體文章采集平臺、公眾號查詢(xún)、公眾號轉載他人的原創(chuàng )文章、公眾號歷史文章等知識點(diǎn)。

querylist采集微信公眾號文章(谷歌瀏覽器微信公眾號申請門(mén)檻低,服務(wù)號需要營(yíng)業(yè)執照等)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 182 次瀏覽 ? 2021-11-02 06:05 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(谷歌瀏覽器微信公眾號申請門(mén)檻低,服務(wù)號需要營(yíng)業(yè)執照等)
  一、網(wǎng)上的方法:
  1.在訂閱賬號功能中使用查詢(xún)鏈接,(這個(gè)鏈接現在是嚴重的反亂碼措施,抓取幾十個(gè)頁(yè)面會(huì )屏蔽訂閱賬號,僅供參考)
  更多詳情,請訪(fǎng)問(wèn)此鏈接:/4652.html
  2.使用搜狗搜索微信搜索(此方法只能查看每個(gè)微信公眾號的前10條文章)
  詳情請訪(fǎng)問(wèn)此鏈接:/qiqiyingse/article/details/70050113
  3.先搶公眾號界面,進(jìn)入界面獲取所有文章連接
  二、環(huán)境配置及材料準備
  1.需要安裝python selenium模塊包,使用selenium中的webdriver驅動(dòng)瀏覽器獲取cookie,達到登錄的效果;
  2. 使用webdriver功能需要安裝瀏覽器對應的驅動(dòng)插件。我在這里測試的是 Google Chrome。
  3.微信公眾號申請(個(gè)人訂閱號申請門(mén)檻低,服務(wù)號需要營(yíng)業(yè)執照等)
  4、。微信公眾號文章界面地址可以在微信公眾號后臺新建圖文消息,可以通過(guò)超鏈接功能獲??;
  
  通過(guò)搜索關(guān)鍵字獲取所有相關(guān)公眾號信息,但我只取第一個(gè)進(jìn)行測試,其他感興趣的人也可以全部獲取
  
  5.獲取要爬取的公眾號的fakeid
  
  6.選擇要爬取的公眾號,獲取文章接口地址
  
  從 selenium 導入 webdriver
  導入時(shí)間
  導入json
  導入請求
  重新導入
  隨機導入
  user=""
  password="weikuan3344520"
  gzlist=['熊貓']
  #登錄微信公眾號,登錄后獲取cookie信息,保存在本地文本
  def weChat_login():
  #定義一個(gè)空字典來(lái)存儲cookies的內容
  post={}
  #使用網(wǎng)絡(luò )驅動(dòng)程序啟動(dòng)谷歌瀏覽器
  print("啟動(dòng)瀏覽器,打開(kāi)微信公眾號登錄界面")
  driver = webdriver.Chrome(executable_path='C:\chromedriver.exe')
  #打開(kāi)微信公眾號登錄頁(yè)面
  driver.get('/')
  #等待 5 秒
  time.sleep(5)
  print("輸入微信公眾號賬號和密碼...")
  #清除帳號框中的內容
  driver.find_element_by_xpath("./*//input[@name='account'][@type='text']").clear()
  #自動(dòng)填寫(xiě)登錄用戶(hù)名
  driver.find_element_by_xpath("./*//input[@name='account'][@type='text']").send_keys(user)
  #清空密碼框內容
  driver.find_element_by_xpath("./*//input[@name='password'][@type='password']").clear()
  #自動(dòng)填寫(xiě)登錄密碼
  driver.find_element_by_xpath("./*//input[@name='password'][@type='password']").send_keys(password)
  //這是重點(diǎn),最近改版后
  #自動(dòng)輸入密碼后,需要手動(dòng)點(diǎn)擊記住我
  print("請點(diǎn)擊登錄界面:記住您的賬號")
  time.sleep(10)
  #自動(dòng)點(diǎn)擊登錄按鈕登錄
  driver.find_element_by_xpath("./*//a[@class='btn_login']").click()
  #用手機掃描二維碼!
  print("請用手機掃描二維碼登錄公眾號")
  time.sleep(20)
  print("登錄成功")
  #重新加載公眾號登錄頁(yè)面,登錄后會(huì )顯示公眾號后臺首頁(yè),從返回的內容中獲取cookies信息
  driver.get('/')
  #獲取cookies
  cookie_items = driver.get_cookies()
  #獲取的cookies為列表形式,將cookies轉換為json形式存放在名為cookie的本地文本中
  對于 cookie_items 中的 cookie_item:
  post[cookie_item['name']] = cookie_item['value']
  cookie_str = json.dumps(post)
  with open('cookie.txt','w+', encoding='utf-8') as f:
  f.write(cookie_str)
  print("Cookies 信息已保存在本地")
  #Crawl 微信公眾號文章并存入本地文本
  def get_content(query):
  #query 是要抓取的公眾號名稱(chēng)
  #公眾號首頁(yè)
  url =''
  #設置標題
  標題 = {
  "主機":"",
  "用戶(hù)代理": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/5< @3.0"
  }
  #讀取上一步獲取的cookie
  with open('cookie.txt','r', encoding='utf-8') as f:
  cookie = f.read()
  cookies = json.loads(cookie)
  #登錄后微信公眾號首頁(yè)url改為:/cgi-bin/home?t=home/index&lang=zh_CN&token=1849751598,獲取token信息
  response = requests.get(url=url, cookies=cookies)
  token = re.findall(r'token=(\d+)', str(response.url))[0]
  #搜索微信公眾號接口地址
  search_url ='/cgi-bin/searchbiz?'
  #搜索微信公眾號接口需要傳入的參數,共有三個(gè)變量:微信公眾號token、隨機數random、搜索微信公眾號名稱(chēng)
  query_id = {
  'action':'search_biz',
  'token':令牌,
  'lang':'zh_CN',
  'f':'json',
  'ajax': '1',
  'random': random.random(),
  '查詢(xún)':查詢(xún),
  '開(kāi)始':'0',
  '計數':'5'
  }
  #打開(kāi)搜索微信公眾號接口地址,需要傳入cookies、params、headers等相關(guān)參數信息
  search_response = requests.get(search_url, cookies=cookies, headers=header, params=query_id)
  #取搜索結果第一個(gè)公眾號
  lists = search_response.json().get('list')[0]
  #獲取這個(gè)公眾號的fakeid,然后抓取公眾號文章需要這個(gè)字段
  fakeid = list.get('fakeid')
  #微信公眾號文章界面地址
  appmsg_url ='/cgi-bin/appmsg?'
  #Search文章 需要傳入幾個(gè)參數:登錄公眾號token、爬取文章公眾號fakeid、隨機數random
  query_id_data = {
  'token':令牌,
  'lang':'zh_CN',
  'f':'json',
  'ajax': '1',
  'random': random.random(),
  'action':'list_ex',
  'begin': '0',#不同的頁(yè)面,這個(gè)參數改變,改變規則是每頁(yè)加5
  '計數':'5',
  '查詢(xún)':'',
  'fakeid':fakeid,
  '類(lèi)型':'9'
  }
  #打開(kāi)搜索微信公眾號文章列表頁(yè)
  appmsg_response = requests.get(appmsg_url, cookies=cookies, headers=header, params=query_id_data)
  #獲取文章總數
  max_num = appmsg_response.json().get('app_msg_cnt')
  #每頁(yè)至少有5個(gè)條目,獲取文章頁(yè)總數,爬取時(shí)需要頁(yè)面爬取
  num = int(int(max_num) / 5)
  #起始頁(yè)begin參數,后續每頁(yè)加5
  開(kāi)始 = 0
  當 num + 1> 0 :
  query_id_data = {
  'token':令牌,
  'lang':'zh_CN',
  'f':'json',
  'ajax': '1',
  'random': random.random(),
  'action':'list_ex',
  'begin':'{}'.format(str(begin)),
  '計數':'5',
  '查詢(xún)':'',
  'fakeid':fakeid,
  '類(lèi)型':'9'
  }
  print('翻頁(yè):--------------',begin)
  #獲取每個(gè)頁(yè)面的標題和鏈接地址文章,并寫(xiě)入本地文本
  query_fakeid_response = requests.get(appmsg_url, cookies=cookies, headers=header, params=query_id_data)
  fakeid_list = query_fakeid_response.json().get('app_msg_list')
  對于 fakeid_list 中的項目:
  content_link=item.get('link')
  content_title=item.get('title')
  fileName=query+'.txt'
  with open(fileName,'a',encoding='utf-8') as fh:
  fh.write(content_title+":\n"+content_link+"\n")
  數量 -= 1
  begin = int(begin)
  開(kāi)始+=5
  time.sleep(2)
  如果 __name__=='__main__':
  試試:
  #登錄微信公眾號,登錄后獲取cookie信息,保存在本地文本
  weChat_login()
  #登錄后,爬取微信公眾號文章微信公眾號后臺提供的界面文章
  在 gzlist 中查詢(xún):
  #Crawl 微信公眾號文章并存入本地文本 查看全部

  querylist采集微信公眾號文章(谷歌瀏覽器微信公眾號申請門(mén)檻低,服務(wù)號需要營(yíng)業(yè)執照等)
  一、網(wǎng)上的方法:
  1.在訂閱賬號功能中使用查詢(xún)鏈接,(這個(gè)鏈接現在是嚴重的反亂碼措施,抓取幾十個(gè)頁(yè)面會(huì )屏蔽訂閱賬號,僅供參考)
  更多詳情,請訪(fǎng)問(wèn)此鏈接:/4652.html
  2.使用搜狗搜索微信搜索(此方法只能查看每個(gè)微信公眾號的前10條文章)
  詳情請訪(fǎng)問(wèn)此鏈接:/qiqiyingse/article/details/70050113
  3.先搶公眾號界面,進(jìn)入界面獲取所有文章連接
  二、環(huán)境配置及材料準備
  1.需要安裝python selenium模塊包,使用selenium中的webdriver驅動(dòng)瀏覽器獲取cookie,達到登錄的效果;
  2. 使用webdriver功能需要安裝瀏覽器對應的驅動(dòng)插件。我在這里測試的是 Google Chrome。
  3.微信公眾號申請(個(gè)人訂閱號申請門(mén)檻低,服務(wù)號需要營(yíng)業(yè)執照等)
  4、。微信公眾號文章界面地址可以在微信公眾號后臺新建圖文消息,可以通過(guò)超鏈接功能獲??;
  
  通過(guò)搜索關(guān)鍵字獲取所有相關(guān)公眾號信息,但我只取第一個(gè)進(jìn)行測試,其他感興趣的人也可以全部獲取
  
  5.獲取要爬取的公眾號的fakeid
  
  6.選擇要爬取的公眾號,獲取文章接口地址
  
  從 selenium 導入 webdriver
  導入時(shí)間
  導入json
  導入請求
  重新導入
  隨機導入
  user=""
  password="weikuan3344520"
  gzlist=['熊貓']
  #登錄微信公眾號,登錄后獲取cookie信息,保存在本地文本
  def weChat_login():
  #定義一個(gè)空字典來(lái)存儲cookies的內容
  post={}
  #使用網(wǎng)絡(luò )驅動(dòng)程序啟動(dòng)谷歌瀏覽器
  print("啟動(dòng)瀏覽器,打開(kāi)微信公眾號登錄界面")
  driver = webdriver.Chrome(executable_path='C:\chromedriver.exe')
  #打開(kāi)微信公眾號登錄頁(yè)面
  driver.get('/')
  #等待 5 秒
  time.sleep(5)
  print("輸入微信公眾號賬號和密碼...")
  #清除帳號框中的內容
  driver.find_element_by_xpath("./*//input[@name='account'][@type='text']").clear()
  #自動(dòng)填寫(xiě)登錄用戶(hù)名
  driver.find_element_by_xpath("./*//input[@name='account'][@type='text']").send_keys(user)
  #清空密碼框內容
  driver.find_element_by_xpath("./*//input[@name='password'][@type='password']").clear()
  #自動(dòng)填寫(xiě)登錄密碼
  driver.find_element_by_xpath("./*//input[@name='password'][@type='password']").send_keys(password)
  //這是重點(diǎn),最近改版后
  #自動(dòng)輸入密碼后,需要手動(dòng)點(diǎn)擊記住我
  print("請點(diǎn)擊登錄界面:記住您的賬號")
  time.sleep(10)
  #自動(dòng)點(diǎn)擊登錄按鈕登錄
  driver.find_element_by_xpath("./*//a[@class='btn_login']").click()
  #用手機掃描二維碼!
  print("請用手機掃描二維碼登錄公眾號")
  time.sleep(20)
  print("登錄成功")
  #重新加載公眾號登錄頁(yè)面,登錄后會(huì )顯示公眾號后臺首頁(yè),從返回的內容中獲取cookies信息
  driver.get('/')
  #獲取cookies
  cookie_items = driver.get_cookies()
  #獲取的cookies為列表形式,將cookies轉換為json形式存放在名為cookie的本地文本中
  對于 cookie_items 中的 cookie_item:
  post[cookie_item['name']] = cookie_item['value']
  cookie_str = json.dumps(post)
  with open('cookie.txt','w+', encoding='utf-8') as f:
  f.write(cookie_str)
  print("Cookies 信息已保存在本地")
  #Crawl 微信公眾號文章并存入本地文本
  def get_content(query):
  #query 是要抓取的公眾號名稱(chēng)
  #公眾號首頁(yè)
  url =''
  #設置標題
  標題 = {
  "主機":"",
  "用戶(hù)代理": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/5< @3.0"
  }
  #讀取上一步獲取的cookie
  with open('cookie.txt','r', encoding='utf-8') as f:
  cookie = f.read()
  cookies = json.loads(cookie)
  #登錄后微信公眾號首頁(yè)url改為:/cgi-bin/home?t=home/index&lang=zh_CN&token=1849751598,獲取token信息
  response = requests.get(url=url, cookies=cookies)
  token = re.findall(r'token=(\d+)', str(response.url))[0]
  #搜索微信公眾號接口地址
  search_url ='/cgi-bin/searchbiz?'
  #搜索微信公眾號接口需要傳入的參數,共有三個(gè)變量:微信公眾號token、隨機數random、搜索微信公眾號名稱(chēng)
  query_id = {
  'action':'search_biz',
  'token':令牌,
  'lang':'zh_CN',
  'f':'json',
  'ajax': '1',
  'random': random.random(),
  '查詢(xún)':查詢(xún),
  '開(kāi)始':'0',
  '計數':'5'
  }
  #打開(kāi)搜索微信公眾號接口地址,需要傳入cookies、params、headers等相關(guān)參數信息
  search_response = requests.get(search_url, cookies=cookies, headers=header, params=query_id)
  #取搜索結果第一個(gè)公眾號
  lists = search_response.json().get('list')[0]
  #獲取這個(gè)公眾號的fakeid,然后抓取公眾號文章需要這個(gè)字段
  fakeid = list.get('fakeid')
  #微信公眾號文章界面地址
  appmsg_url ='/cgi-bin/appmsg?'
  #Search文章 需要傳入幾個(gè)參數:登錄公眾號token、爬取文章公眾號fakeid、隨機數random
  query_id_data = {
  'token':令牌,
  'lang':'zh_CN',
  'f':'json',
  'ajax': '1',
  'random': random.random(),
  'action':'list_ex',
  'begin': '0',#不同的頁(yè)面,這個(gè)參數改變,改變規則是每頁(yè)加5
  '計數':'5',
  '查詢(xún)':'',
  'fakeid':fakeid,
  '類(lèi)型':'9'
  }
  #打開(kāi)搜索微信公眾號文章列表頁(yè)
  appmsg_response = requests.get(appmsg_url, cookies=cookies, headers=header, params=query_id_data)
  #獲取文章總數
  max_num = appmsg_response.json().get('app_msg_cnt')
  #每頁(yè)至少有5個(gè)條目,獲取文章頁(yè)總數,爬取時(shí)需要頁(yè)面爬取
  num = int(int(max_num) / 5)
  #起始頁(yè)begin參數,后續每頁(yè)加5
  開(kāi)始 = 0
  當 num + 1> 0 :
  query_id_data = {
  'token':令牌,
  'lang':'zh_CN',
  'f':'json',
  'ajax': '1',
  'random': random.random(),
  'action':'list_ex',
  'begin':'{}'.format(str(begin)),
  '計數':'5',
  '查詢(xún)':'',
  'fakeid':fakeid,
  '類(lèi)型':'9'
  }
  print('翻頁(yè):--------------',begin)
  #獲取每個(gè)頁(yè)面的標題和鏈接地址文章,并寫(xiě)入本地文本
  query_fakeid_response = requests.get(appmsg_url, cookies=cookies, headers=header, params=query_id_data)
  fakeid_list = query_fakeid_response.json().get('app_msg_list')
  對于 fakeid_list 中的項目:
  content_link=item.get('link')
  content_title=item.get('title')
  fileName=query+'.txt'
  with open(fileName,'a',encoding='utf-8') as fh:
  fh.write(content_title+":\n"+content_link+"\n")
  數量 -= 1
  begin = int(begin)
  開(kāi)始+=5
  time.sleep(2)
  如果 __name__=='__main__':
  試試:
  #登錄微信公眾號,登錄后獲取cookie信息,保存在本地文本
  weChat_login()
  #登錄后,爬取微信公眾號文章微信公眾號后臺提供的界面文章
  在 gzlist 中查詢(xún):
  #Crawl 微信公眾號文章并存入本地文本

querylist采集微信公眾號文章(2019年10月28日更新:錄制了一個(gè)YouTube視頻)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 148 次瀏覽 ? 2021-11-02 06:04 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(2019年10月28日更新:錄制了一個(gè)YouTube視頻)
  2019 年 10 月 28 日更新:
  錄制了一段YouTube視頻,詳細解釋了操作步驟:
  ================原創(chuàng )==========================
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。當時(shí)批量采集特別好做,采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)條目現在還是一樣,但是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)2015年html5垃圾站沒(méi)做,改把采集定位到本地新聞資訊公眾號,前端展示做成了app。所以一個(gè)可以自動(dòng)采集的新聞應用 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證你看到的時(shí)候可以看到。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)可以正常顯示內容的完整鏈接是什么樣子的:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的一個(gè)類(lèi)似 id 的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  其余 3 個(gè)參數與用戶(hù)的 id 和 token 票證相關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、 微信客戶(hù)端:可以是安裝了微信應用的手機,也可以是電腦中的安卓模擬器。批量測試的ios微信客戶(hù)端崩潰率采集高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾賬號歷史消息頁(yè)面中的文章列表發(fā)送到自己的服務(wù)器。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用php語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表,建立采集隊列實(shí)現批量采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);---------------2019 年 10 月 28 日更新:此命令不再有效?。?!跳過(guò)這一步
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址:8002,可以看到anyproxy的web界面。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )有302跳轉到/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件內容,則表示解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成CA證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,才能獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,了解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \&#39;(.*?)\&#39;;/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxPost.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  以上代碼是使用anyproxy修改返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require(&#39;http&#39;);
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require(&#39;querystring&#39;).stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
&#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded; charset=UTF-8&#39;,
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding(&#39;utf8&#39;);
res.on(&#39;data&#39;, function (chunk) {
console.log(&#39;BODY: &#39; + chunk);
});
});
req.on(&#39;error&#39;, function (e) {
console.log(&#39;problem with request: &#39; + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是anyproxy的規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次,請原諒我不熟悉windows命令。
  接下來(lái),我們將詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p> 查看全部

  querylist采集微信公眾號文章(2019年10月28日更新:錄制了一個(gè)YouTube視頻)
  2019 年 10 月 28 日更新:
  錄制了一段YouTube視頻,詳細解釋了操作步驟:
  ================原創(chuàng )==========================
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。當時(shí)批量采集特別好做,采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)條目現在還是一樣,但是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)2015年html5垃圾站沒(méi)做,改把采集定位到本地新聞資訊公眾號,前端展示做成了app。所以一個(gè)可以自動(dòng)采集的新聞應用 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證你看到的時(shí)候可以看到。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)可以正常顯示內容的完整鏈接是什么樣子的:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的一個(gè)類(lèi)似 id 的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  其余 3 個(gè)參數與用戶(hù)的 id 和 token 票證相關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、 微信客戶(hù)端:可以是安裝了微信應用的手機,也可以是電腦中的安卓模擬器。批量測試的ios微信客戶(hù)端崩潰率采集高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾賬號歷史消息頁(yè)面中的文章列表發(fā)送到自己的服務(wù)器。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用php語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表,建立采集隊列實(shí)現批量采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);---------------2019 年 10 月 28 日更新:此命令不再有效?。?!跳過(guò)這一步
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址:8002,可以看到anyproxy的web界面。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )有302跳轉到/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件內容,則表示解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成CA證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,才能獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,了解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \&#39;(.*?)\&#39;;/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxPost.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  以上代碼是使用anyproxy修改返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require(&#39;http&#39;);
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require(&#39;querystring&#39;).stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
&#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded; charset=UTF-8&#39;,
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding(&#39;utf8&#39;);
res.on(&#39;data&#39;, function (chunk) {
console.log(&#39;BODY: &#39; + chunk);
});
});
req.on(&#39;error&#39;, function (e) {
console.log(&#39;problem with request: &#39; + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是anyproxy的規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次,請原諒我不熟悉windows命令。
  接下來(lái),我們將詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p>

querylist采集微信公眾號文章(微信文章下載神器-V20210205,強烈建議升級到最新版本!)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 496 次瀏覽 ? 2021-11-01 01:30 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信文章下載神器-V20210205,強烈建議升級到最新版本!)
  很多公眾號文章真的很棒很有價(jià)值。我們想保存到本地慢慢看的時(shí)候可以使用這個(gè)工具。
  新版本更新
  經(jīng)過(guò)廣大朋友最近的使用,發(fā)現一些問(wèn)題已經(jīng)得到解決,比如點(diǎn)擊啟動(dòng)獲取程序報錯、崩潰等?;蛘咴O置代理失敗等,特別感謝一哥提供遠程環(huán)境給我調試定位問(wèn)題,解決了一個(gè)影響使用的重要問(wèn)題?,F在版本穩定性有了很大的提升。
  目前的穩定版本是:
  微信文章下載神器-V20210205,強烈建議您升級到最新版本。
  一、函數列表
  實(shí)現了以下功能:
  - 簡(jiǎn)單易用的UI界面
  - 啟動(dòng)/停止系統代理
  - 自動(dòng)獲取微信公眾號參數
  - 獲取公眾號所有歷史文章列表
  -只獲取文章公眾號原創(chuàng )的列表
  -獲取指定日期范圍內的公眾號文章列表
  -批量下載獲得的公眾號文章,支持HTML和PDF格式
  -支持續傳下載功能,增量下載
  - 支持將下載的pdf文檔合并成書(shū),并添加導航索引
  -支持全自動(dòng)工作模式(自動(dòng)獲取文章,下載為HTML、PDF、合并)
  二、使用步驟
  1、雙擊微信文章在windows系統上下載Sacred Tool-V20210205.exe,打開(kāi)軟件界面,如下:
  
  
  第一次打開(kāi)時(shí),有些殺毒軟件會(huì )誤報病毒(因為該軟件可以讀寫(xiě)文件,設置代理等),加信任就行了。如下圖可以看到?jīng)]有風(fēng)險。
  
  2、根據軟件狀態(tài)欄的提示:點(diǎn)擊上圖中的開(kāi)始采集按鈕,按照提示進(jìn)行下面的第三步
  3、打開(kāi)電腦微信,打開(kāi)你要下載的微信公眾號列表文章,步驟如下:
  
  4、這時(shí)候就可以了,等待軟件界面獲取對應公眾號的參數,根據右邊設置的下載范圍自動(dòng)獲取歷史文章列表,如下:
  
  5、這時(shí)候點(diǎn)擊上面的批量下載按鈕,顯示如下:
  
  6、此時(shí)點(diǎn)擊右下角的開(kāi)始下載按鈕,顯示如下:
  
  7、下載完成后,HTML文件會(huì )轉成PDF格式,如下圖:
  
  8、 轉換為PDF完成后,可以點(diǎn)擊Merge Document按鈕,如下圖:
  點(diǎn)擊瀏覽按鈕,選擇剛剛下載的pdf文檔所在目錄,點(diǎn)擊開(kāi)始合并。下面會(huì )提示合并文檔所在的目錄。
  
  9、下載文件整理如下:
  每個(gè)公眾號是一個(gè)獨立的目錄,由三個(gè)目錄和下面的合并文件組成
  html以網(wǎng)頁(yè)格式保存公眾號文章
  pdf以pdf格式保存公眾號文章
  json是歷史文章公眾號列表(普通用戶(hù)無(wú)所謂)
  
  下載鏈接:百度盤(pán)
  關(guān)聯(lián):
  提取碼:6666
  復制此內容后,打開(kāi)百度網(wǎng)盤(pán)手機APP,更方便。 查看全部

  querylist采集微信公眾號文章(微信文章下載神器-V20210205,強烈建議升級到最新版本!)
  很多公眾號文章真的很棒很有價(jià)值。我們想保存到本地慢慢看的時(shí)候可以使用這個(gè)工具。
  新版本更新
  經(jīng)過(guò)廣大朋友最近的使用,發(fā)現一些問(wèn)題已經(jīng)得到解決,比如點(diǎn)擊啟動(dòng)獲取程序報錯、崩潰等?;蛘咴O置代理失敗等,特別感謝一哥提供遠程環(huán)境給我調試定位問(wèn)題,解決了一個(gè)影響使用的重要問(wèn)題?,F在版本穩定性有了很大的提升。
  目前的穩定版本是:
  微信文章下載神器-V20210205,強烈建議您升級到最新版本。
  一、函數列表
  實(shí)現了以下功能:
  - 簡(jiǎn)單易用的UI界面
  - 啟動(dòng)/停止系統代理
  - 自動(dòng)獲取微信公眾號參數
  - 獲取公眾號所有歷史文章列表
  -只獲取文章公眾號原創(chuàng )的列表
  -獲取指定日期范圍內的公眾號文章列表
  -批量下載獲得的公眾號文章,支持HTML和PDF格式
  -支持續傳下載功能,增量下載
  - 支持將下載的pdf文檔合并成書(shū),并添加導航索引
  -支持全自動(dòng)工作模式(自動(dòng)獲取文章,下載為HTML、PDF、合并)
  二、使用步驟
  1、雙擊微信文章在windows系統上下載Sacred Tool-V20210205.exe,打開(kāi)軟件界面,如下:
  
  
  第一次打開(kāi)時(shí),有些殺毒軟件會(huì )誤報病毒(因為該軟件可以讀寫(xiě)文件,設置代理等),加信任就行了。如下圖可以看到?jīng)]有風(fēng)險。
  
  2、根據軟件狀態(tài)欄的提示:點(diǎn)擊上圖中的開(kāi)始采集按鈕,按照提示進(jìn)行下面的第三步
  3、打開(kāi)電腦微信,打開(kāi)你要下載的微信公眾號列表文章,步驟如下:
  
  4、這時(shí)候就可以了,等待軟件界面獲取對應公眾號的參數,根據右邊設置的下載范圍自動(dòng)獲取歷史文章列表,如下:
  
  5、這時(shí)候點(diǎn)擊上面的批量下載按鈕,顯示如下:
  
  6、此時(shí)點(diǎn)擊右下角的開(kāi)始下載按鈕,顯示如下:
  
  7、下載完成后,HTML文件會(huì )轉成PDF格式,如下圖:
  
  8、 轉換為PDF完成后,可以點(diǎn)擊Merge Document按鈕,如下圖:
  點(diǎn)擊瀏覽按鈕,選擇剛剛下載的pdf文檔所在目錄,點(diǎn)擊開(kāi)始合并。下面會(huì )提示合并文檔所在的目錄。
  
  9、下載文件整理如下:
  每個(gè)公眾號是一個(gè)獨立的目錄,由三個(gè)目錄和下面的合并文件組成
  html以網(wǎng)頁(yè)格式保存公眾號文章
  pdf以pdf格式保存公眾號文章
  json是歷史文章公眾號列表(普通用戶(hù)無(wú)所謂)
  
  下載鏈接:百度盤(pán)
  關(guān)聯(lián):
  提取碼:6666
  復制此內容后,打開(kāi)百度網(wǎng)盤(pán)手機APP,更方便。

querylist采集微信公眾號文章(壹伴助手快速復制自媒體文章的編輯器教程!助手)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 445 次瀏覽 ? 2021-10-30 23:00 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(壹伴助手快速復制自媒體文章的編輯器教程!助手)
  說(shuō)到復制文章,首先想到的就是打開(kāi)文章,用快捷鍵復制粘貼到微信公眾號。這種方法雖然方便,但經(jīng)常會(huì )出現格式混亂或者樣式和圖片無(wú)法顯示的情況??傊?,文章很難完全復制。
  本文以插件的形式與大家分享一個(gè)編輯器,可以快速復制其他自媒體文章,同時(shí)保證格式的好亂。趕快采集這篇文章吧!
  一幫助手是一款插件編輯器。安裝后直接在公眾號后臺排版即可。僅此一項功能就讓我非常興奮。
  安裝后,公眾號編輯頁(yè)面右側會(huì )有一個(gè)圖文并茂的工具箱。點(diǎn)擊導入文章,輸入公眾號文章鏈接,將其完整復制到編輯頁(yè)面。
  
  如果你要復制的文章是其他平臺,比如今日頭條或者百家號怎么辦?
  朋友們可以先打開(kāi)其他平臺文章,然后右擊選擇采集文章素材,然后采集就可以放到公眾號的素材庫中,或者可以選擇采集去一版云做筆記。
  
  如果采集進(jìn)入素材庫,在素材庫中打開(kāi)文章,編輯好后推送。如果放在易班云筆記中,可以點(diǎn)擊導入文章,來(lái)源是云筆記就可以了。
  除了采集整篇文章文章,你還可以采集單個(gè)樣式。另外,在瀏覽器中打開(kāi)公眾號文章,右側會(huì )出現One Compan Toolbox。
  
  在工具箱中找到采集樣式功能,然后選擇自己喜歡的樣式,點(diǎn)擊復制或采集,直接應用到您的公眾號文章。 查看全部

  querylist采集微信公眾號文章(壹伴助手快速復制自媒體文章的編輯器教程!助手)
  說(shuō)到復制文章,首先想到的就是打開(kāi)文章,用快捷鍵復制粘貼到微信公眾號。這種方法雖然方便,但經(jīng)常會(huì )出現格式混亂或者樣式和圖片無(wú)法顯示的情況??傊?,文章很難完全復制。
  本文以插件的形式與大家分享一個(gè)編輯器,可以快速復制其他自媒體文章,同時(shí)保證格式的好亂。趕快采集這篇文章吧!
  一幫助手是一款插件編輯器。安裝后直接在公眾號后臺排版即可。僅此一項功能就讓我非常興奮。
  安裝后,公眾號編輯頁(yè)面右側會(huì )有一個(gè)圖文并茂的工具箱。點(diǎn)擊導入文章,輸入公眾號文章鏈接,將其完整復制到編輯頁(yè)面。
  
  如果你要復制的文章是其他平臺,比如今日頭條或者百家號怎么辦?
  朋友們可以先打開(kāi)其他平臺文章,然后右擊選擇采集文章素材,然后采集就可以放到公眾號的素材庫中,或者可以選擇采集去一版云做筆記。
  
  如果采集進(jìn)入素材庫,在素材庫中打開(kāi)文章,編輯好后推送。如果放在易班云筆記中,可以點(diǎn)擊導入文章,來(lái)源是云筆記就可以了。
  除了采集整篇文章文章,你還可以采集單個(gè)樣式。另外,在瀏覽器中打開(kāi)公眾號文章,右側會(huì )出現One Compan Toolbox。
  
  在工具箱中找到采集樣式功能,然后選擇自己喜歡的樣式,點(diǎn)擊復制或采集,直接應用到您的公眾號文章。

querylist采集微信公眾號文章(大數據step1:創(chuàng )建querylistnode()查看詳細說(shuō)明。)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 150 次瀏覽 ? 2021-10-30 15:02 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(大數據step1:創(chuàng )建querylistnode()查看詳細說(shuō)明。)
  querylist采集微信公眾號文章大數據step1:創(chuàng )建querylistnode,具體代碼如下#-*-coding:utf-8-*-frombs4importbeautifulsoupimportnumpyasnpimportrequestsheaders={'user-agent':'mozilla/5。
  0(windowsnt6。1;win64;x64)applewebkit/537。36(khtml,likegecko)chrome/58。2643。100safari/537。36'}#創(chuàng )建一個(gè)url,保存所有圖片及鏈接url='/'s=set()#構建全局變量#s=[]classurllistnode(object):#保存所有的鏈接,圖片列表filename='全局配置'screenshot_size=200size='utf-8'last_matched=''url_type='text/html;charset=utf-8'data={}doc=requests。
  get(url_type,size=size,headers=headers)imgs={}forsource,img,filenameinimgs:urllistnode。append(url)#加載所有圖片forurlinurllistnode:img=url。replace(url,'。jpg')print(img)#圖片列表返回print(data)print('詳細說(shuō)明')查看詳細說(shuō)明更多詳情querylist方法介紹以上,希望有所幫助!itchat安卓客戶(hù)端使用說(shuō)明(https://)-android應用。 查看全部

  querylist采集微信公眾號文章(大數據step1:創(chuàng )建querylistnode()查看詳細說(shuō)明。)
  querylist采集微信公眾號文章大數據step1:創(chuàng )建querylistnode,具體代碼如下#-*-coding:utf-8-*-frombs4importbeautifulsoupimportnumpyasnpimportrequestsheaders={'user-agent':'mozilla/5。
  0(windowsnt6。1;win64;x64)applewebkit/537。36(khtml,likegecko)chrome/58。2643。100safari/537。36'}#創(chuàng )建一個(gè)url,保存所有圖片及鏈接url='/'s=set()#構建全局變量#s=[]classurllistnode(object):#保存所有的鏈接,圖片列表filename='全局配置'screenshot_size=200size='utf-8'last_matched=''url_type='text/html;charset=utf-8'data={}doc=requests。
  get(url_type,size=size,headers=headers)imgs={}forsource,img,filenameinimgs:urllistnode。append(url)#加載所有圖片forurlinurllistnode:img=url。replace(url,'。jpg')print(img)#圖片列表返回print(data)print('詳細說(shuō)明')查看詳細說(shuō)明更多詳情querylist方法介紹以上,希望有所幫助!itchat安卓客戶(hù)端使用說(shuō)明(https://)-android應用。

querylist采集微信公眾號文章(微信自帶的瀏覽器有擴展你為什么不用呢?)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 138 次瀏覽 ? 2021-11-29 02:02 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信自帶的瀏覽器有擴展你為什么不用呢?)
  querylist采集微信公眾號文章素材。截圖有加載時(shí)間問(wèn)題,騰訊會(huì )給微信文章分段,所以你才看不到“離線(xiàn)”和“離線(xiàn)下載”(我估計你是要離線(xiàn)下載上傳)。你所說(shuō)的離線(xiàn)下載,我估計是指離線(xiàn)下載文章列表,它會(huì )先保存在本地;等你上傳的時(shí)候再把這個(gè)本地的文件傳給騰訊服務(wù)器,此時(shí)就能下載到你的云盤(pán)或者瀏覽器啦。好在如果是你要“同步”文章列表,可以在云盤(pán)/瀏覽器嵌入internetexplorer擴展,把文章列表也要先放到本地。(然而微信自帶的瀏覽器有擴展你為什么不用呢)。
  最新解決方案:如果你的電腦上沒(méi)有windows,沒(méi)有macosx,一般,qq瀏覽器是支持你所要的設置的,在彈出對話(huà)框中:復制鏈接到web/本地即可,
  如果你是電腦上沒(méi)有dom,那么只能在手機本地用瀏覽器訪(fǎng)問(wèn),上傳過(guò)去qq瀏覽器才會(huì )給原網(wǎng)頁(yè)加載,但是速度非常慢。如果你是在手機瀏覽器里加載的圖片的話(huà),
  xhr(因為是騰訊郵箱的產(chǎn)品)
  我一直用微信公眾號提供的圖片服務(wù),直接截圖加速下載微信內部調用的是mp4格式,需要轉換(tomcat)tomcat的內部環(huán)境是windowsosxandroidrelease7。0tomcat7。0開(kāi)始禁止下載任何mp4格式文件(要安裝rebean)tomcat7。3。2測試通過(guò)ps。截圖下載不了直接在微信公眾號里添加微圖公眾號傳文件,下圖公眾號shadow3ee-capture添加文件即可得到各種格式的文件,哪里不行哪里修改即可微圖shadow3ee-capture2018。3。22封裝base64:-api/v1/tb106b9。html(二維碼自動(dòng)識別)。 查看全部

  querylist采集微信公眾號文章(微信自帶的瀏覽器有擴展你為什么不用呢?)
  querylist采集微信公眾號文章素材。截圖有加載時(shí)間問(wèn)題,騰訊會(huì )給微信文章分段,所以你才看不到“離線(xiàn)”和“離線(xiàn)下載”(我估計你是要離線(xiàn)下載上傳)。你所說(shuō)的離線(xiàn)下載,我估計是指離線(xiàn)下載文章列表,它會(huì )先保存在本地;等你上傳的時(shí)候再把這個(gè)本地的文件傳給騰訊服務(wù)器,此時(shí)就能下載到你的云盤(pán)或者瀏覽器啦。好在如果是你要“同步”文章列表,可以在云盤(pán)/瀏覽器嵌入internetexplorer擴展,把文章列表也要先放到本地。(然而微信自帶的瀏覽器有擴展你為什么不用呢)。
  最新解決方案:如果你的電腦上沒(méi)有windows,沒(méi)有macosx,一般,qq瀏覽器是支持你所要的設置的,在彈出對話(huà)框中:復制鏈接到web/本地即可,
  如果你是電腦上沒(méi)有dom,那么只能在手機本地用瀏覽器訪(fǎng)問(wèn),上傳過(guò)去qq瀏覽器才會(huì )給原網(wǎng)頁(yè)加載,但是速度非常慢。如果你是在手機瀏覽器里加載的圖片的話(huà),
  xhr(因為是騰訊郵箱的產(chǎn)品)
  我一直用微信公眾號提供的圖片服務(wù),直接截圖加速下載微信內部調用的是mp4格式,需要轉換(tomcat)tomcat的內部環(huán)境是windowsosxandroidrelease7。0tomcat7。0開(kāi)始禁止下載任何mp4格式文件(要安裝rebean)tomcat7。3。2測試通過(guò)ps。截圖下載不了直接在微信公眾號里添加微圖公眾號傳文件,下圖公眾號shadow3ee-capture添加文件即可得到各種格式的文件,哪里不行哪里修改即可微圖shadow3ee-capture2018。3。22封裝base64:-api/v1/tb106b9。html(二維碼自動(dòng)識別)。

querylist采集微信公眾號文章(querylist采集微信公眾號文章的關(guān)鍵詞,可以接google、微博、今日頭條)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 120 次瀏覽 ? 2021-11-25 11:10 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(querylist采集微信公眾號文章的關(guān)鍵詞,可以接google、微博、今日頭條)
  querylist采集微信公眾號文章的上下文關(guān)鍵詞,可以接google、微博、今日頭條、百度百科等平臺的接口轉換。除此之外,還可以收集歷史記錄(超長(cháng)關(guān)鍵詞);根據大數據及深度學(xué)習,讀取用戶(hù)瀏覽習慣與消費習慣,利用語(yǔ)義分析、內容挖掘,建立關(guān)鍵詞標簽庫,挖掘用戶(hù)感興趣的推薦系統。
  就是一堆數據啊。微信自己有個(gè)公眾號搜索看看,然后百度一下你這個(gè)文章在百度里的內容。另外是服務(wù)端返回標題、圖片、來(lái)源等關(guān)鍵詞。
  一般的推送服務(wù)器(sdk),包括一系列的請求、處理、評估、發(fā)送返回。自己做可以利用現有服務(wù)。比如,一個(gè)ga接口是做技術(shù)性開(kāi)發(fā)的,既然叫推送,那么只做用戶(hù)數據收集、分析;然后seo服務(wù),把自己的搜索結果發(fā)布到百度,就完成了。不過(guò)也要看你做的是哪類(lèi)推送。從公眾號的數據挖掘,其實(shí)上可以抽象到app;其實(shí)你用常見(jiàn)的c/s架構都可以完成,接口多,開(kāi)發(fā)較簡(jiǎn)單。像android推送就有androidservice等。
  其實(shí)不僅僅是推送服務(wù),需要計算推送數據,應該也要能抓取推送的數據,就是分析抓取到的數據,比如分析文章標題和內容,分析文章熱度,結合以上數據,可以生成個(gè)人統計報告,再然后應該也可以進(jìn)行云推送吧,http直接推送到服務(wù)器,至于注冊推送嘛,除了分析這些數據,可以自己進(jìn)行錄入,或者爬蟲(chóng),也有做同步數據的。最后還得做一下針對產(chǎn)品。 查看全部

  querylist采集微信公眾號文章(querylist采集微信公眾號文章的關(guān)鍵詞,可以接google、微博、今日頭條)
  querylist采集微信公眾號文章的上下文關(guān)鍵詞,可以接google、微博、今日頭條、百度百科等平臺的接口轉換。除此之外,還可以收集歷史記錄(超長(cháng)關(guān)鍵詞);根據大數據及深度學(xué)習,讀取用戶(hù)瀏覽習慣與消費習慣,利用語(yǔ)義分析、內容挖掘,建立關(guān)鍵詞標簽庫,挖掘用戶(hù)感興趣的推薦系統。
  就是一堆數據啊。微信自己有個(gè)公眾號搜索看看,然后百度一下你這個(gè)文章在百度里的內容。另外是服務(wù)端返回標題、圖片、來(lái)源等關(guān)鍵詞。
  一般的推送服務(wù)器(sdk),包括一系列的請求、處理、評估、發(fā)送返回。自己做可以利用現有服務(wù)。比如,一個(gè)ga接口是做技術(shù)性開(kāi)發(fā)的,既然叫推送,那么只做用戶(hù)數據收集、分析;然后seo服務(wù),把自己的搜索結果發(fā)布到百度,就完成了。不過(guò)也要看你做的是哪類(lèi)推送。從公眾號的數據挖掘,其實(shí)上可以抽象到app;其實(shí)你用常見(jiàn)的c/s架構都可以完成,接口多,開(kāi)發(fā)較簡(jiǎn)單。像android推送就有androidservice等。
  其實(shí)不僅僅是推送服務(wù),需要計算推送數據,應該也要能抓取推送的數據,就是分析抓取到的數據,比如分析文章標題和內容,分析文章熱度,結合以上數據,可以生成個(gè)人統計報告,再然后應該也可以進(jìn)行云推送吧,http直接推送到服務(wù)器,至于注冊推送嘛,除了分析這些數據,可以自己進(jìn)行錄入,或者爬蟲(chóng),也有做同步數據的。最后還得做一下針對產(chǎn)品。

querylist采集微信公眾號文章(,小編覺(jué)得挺不錯的主要介紹思路,代碼部分請自行解決獲取)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 146 次瀏覽 ? 2021-11-21 08:05 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(,小編覺(jué)得挺不錯的主要介紹思路,代碼部分請自行解決獲取)
  本文文章主要介紹python如何爬取搜狗微信公眾號文章永久鏈接思路分析,小編覺(jué)得還不錯,現分享給大家,給大家參考。跟著(zhù)小編一起來(lái)看看吧。
  本文主要講解思路,代碼部分請自行解決
  獲取搜狗微信當天信息排名
  指定輸入關(guān)鍵詞,通過(guò)scrapy抓取公眾號
  登錄微信公眾號鏈接獲取cookie信息
  由于微信公眾平臺的模擬登錄還未解決,需要手動(dòng)登錄實(shí)時(shí)獲取cookie信息
  
  
  
  
  在這里您可以更改永久鏈接
  代碼部分
  def parse(self, response):
item = SougouItem()
item["title"] = response.xpath(&#39;//title/text()&#39;).extract_first()
print("**"*5, item["title"],"**"*5)
name = input("----------請輸入需要搜索的信息:")
print(name)
url = "http://weixin.sogou.com/weixin ... ot%3B
yield scrapy.Request(url=url, callback=self.parse_two, meta={"name":name})
  在搜狗微信中,訪(fǎng)問(wèn)頻率會(huì )過(guò)快,導致需要輸入驗證碼
   def parse_two(self, response):
print(response.url)
name = response.meta["name"]
resp = response.xpath(&#39;//ul[@class="news-list"]/li&#39;)
s = 1
# 判斷url 是否是需要輸入驗證碼
res = re.search("from", response.url) # 需要驗證碼驗證
if res:
print(response.url)
img = response.xpath(&#39;//img/@src&#39;).extract()
print(img)
url_img = "http://weixin.sogou.com/antispider/"+ img[1]
print(url_img)
url_img = requests.get(url_img).content with open("urli.jpg", "wb") as f:
f.write(url_img) # f.close()
img = input("請輸入驗證碼:")
print(img)
url = response.url
r = re.search(r"from=(.*)",url).group(1)
print(r)
postData = {"c":img,"r":r,"v":"5"}
url = "http://weixin.sogou.com/antispider/thank.php"
yield scrapy.FormRequest(url=url, formdata=postData, callback=self.parse_two,meta={"name":name})
# 不需要驗證碼驗證
else:
for res, i in zip(resp, range(1, 10)):
item = SougouItem()
item["url"] = res.xpath(&#39;.//p[1]/a/@href&#39;).extract_first()
item["name"] = name
print("第%d條" % i) # 轉化永久鏈接
headers = {"Host": "mp.weixin.qq.com",
"Connection": "keep-alive",
"Accept": "application/json, text/javascript, */*; q=0.01",
"X-Requested-With": "XMLHttpRequest",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
"Referer": "https://mp.weixin.qq.com/cgi-b ... ot%3B,
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9",
"Cookie": "noticeLoginFlag=1; pgv_pvi=5269297152; pt2gguin=o1349184918; RK=ph4smy/QWu; ptcz=f3eb6ede5db921d0ada7f1713e6d1ca516d200fec57d602e677245490fcb7f1e; pgv_pvid=1033302674; o_cookie=1349184918; pac_uid=1_1349184918; ua_id=4nooSvHNkTOjpIpgAAAAAFX9OSNcLApfsluzwfClLW8=; mm_lang=zh_CN; noticeLoginFlag=1; remember_acct=Liangkai318; rewardsn=; wxtokenkey=777; pgv_si=s1944231936; uuid=700c40c965347f0925a8e8fdcc1e003e; ticket=023fc8861356b01527983c2c4765ef80903bf3d7; ticket_id=gh_6923d82780e4; cert=L_cE4aRdaZeDnzao3xEbMkcP3Kwuejoi; data_bizuin=3075391054; bizuin=3208078327; data_ticket=XrzOnrV9Odc80hJLtk8vFjTLI1vd7kfKJ9u+DzvaeeHxZkMXbv9kcWk/Pmqx/9g7; slave_sid=SWRKNmFyZ1NkM002Rk9NR0RRVGY5VFdMd1lXSkExWGtPcWJaREkzQ1BESEcyQkNLVlQ3YnB4OFNoNmtRZzdFdGpnVGlHak9LMjJ5eXBNVEgxZDlZb1BZMnlfN1hKdnJsV0NKallsQW91Zjk5Y3prVjlQRDNGYUdGUWNFNEd6eTRYT1FSOEQxT0MwR01Ja0Vo; slave_user=gh_6923d82780e4; xid=7b2245140217dbb3c5c0a552d46b9664; openid2ticket_oTr5Ot_B4nrDSj14zUxlXg8yrzws=D/B6//xK73BoO+mKE2EAjdcgIXNPw/b5PEDTDWM6t+4="}
respon = requests.get(url=item["url"]).content
gongzhongh = etree.HTML(respon).xpath(&#39;//a[@id="post-user"]/text()&#39;)[0]
# times = etree.HTML(respon).xpath(&#39;//*[@id="post-date"]/text()&#39;)[0]
title_one = etree.HTML(respon).xpath(&#39;//*[@id="activity-name"]/text()&#39;)[0].split()[0]
print(gongzhongh, title_one)
item["tit"] = title_one
item["gongzhongh"] = gongzhongh
# item["times"] = times
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + gongzhongh + "&begin=0&count=5"
# wenzhang_url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + item["tit"] + "&fakeid=MzA5MzMxMDk3OQ%3D%3D&type=9"
resp = requests.get(url=url, headers=headers).content
print(resp)
faskeids = json.loads(resp.decode("utf-8"))
try:
list_fask = faskeids["list"] except Exception as f:
print("**********[INFO]:請求失敗,登陸失敗, 請重新登陸*************")
return
for fask in list_fask:
fakeid = fask["fakeid"]
nickname = fask["nickname"] if nickname == item["gongzhongh"]:
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + fakeid + "&type=9"
# url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + item["tit"] + "&fakeid=MzA5MzMxMDk3OQ%3D%3D&type=9"
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + item["tit"] +"&fakeid=" + fakeid +"&type=9"
resp = requests.get(url=url, headers=headers).content
app = json.loads(resp.decode("utf-8"))["app_msg_list"]
item["aid"] = app["aid"]
item["appmsgid"] = app["appmsgid"]
item["cover"] = app["cover"]
item["digest"] = app["digest"]
item["url_link"] = app["link"]
item["tit"] = app["title"]
print(item)
time.sleep(10) # time.sleep(5)
# dict_wengzhang = json.loads(resp.decode("utf-8"))
# app_msg_list = dict_wengzhang["app_msg_list"]
# print(len(app_msg_list))
# for app in app_msg_list:
# print(app)
# title = app["title"]
# if title == item["tit"]:
# item["url_link"] = app["link"]
# updata_time = app["update_time"]
# item["times"] = time.strftime("%Y-%m-%d %H:%M:%S", updata_time)
# print("最終鏈接為:", item["url_link"])
# yield item
# else:
# print(app["title"], item["tit"])
# print("與所選文章不同放棄")
# # item["tit"] = app["title"]
# # item["url_link"] = app["link"]
# # yield item
# else:
# print(nickname, item["gongzhongh"])
# print("與所選公眾號不一致放棄")
# time.sleep(100)
# yield item
if response.xpath(&#39;//a[@class="np"]&#39;):
s += 1
url = "http://weixin.sogou.com/weixin ... 2Bstr(s) # time.sleep(3)
yield scrapy.Request(url=url, callback=self.parse_two, meta={"name": name})
  以上就是python如何抓取搜狗微信公眾號文章永久鏈接心態(tài)分析的詳細內容,更多詳情請關(guān)注其他相關(guān)php中文網(wǎng)站文章!
  
  免責聲明:本文原創(chuàng )發(fā)表于php中文網(wǎng)。轉載請注明出處。感謝您的尊重!如果您有任何疑問(wèn),請與我們聯(lián)系 查看全部

  querylist采集微信公眾號文章(,小編覺(jué)得挺不錯的主要介紹思路,代碼部分請自行解決獲取)
  本文文章主要介紹python如何爬取搜狗微信公眾號文章永久鏈接思路分析,小編覺(jué)得還不錯,現分享給大家,給大家參考。跟著(zhù)小編一起來(lái)看看吧。
  本文主要講解思路,代碼部分請自行解決
  獲取搜狗微信當天信息排名
  指定輸入關(guān)鍵詞,通過(guò)scrapy抓取公眾號
  登錄微信公眾號鏈接獲取cookie信息
  由于微信公眾平臺的模擬登錄還未解決,需要手動(dòng)登錄實(shí)時(shí)獲取cookie信息
  
  
  
  
  在這里您可以更改永久鏈接
  代碼部分
  def parse(self, response):
item = SougouItem()
item["title"] = response.xpath(&#39;//title/text()&#39;).extract_first()
print("**"*5, item["title"],"**"*5)
name = input("----------請輸入需要搜索的信息:")
print(name)
url = "http://weixin.sogou.com/weixin ... ot%3B
yield scrapy.Request(url=url, callback=self.parse_two, meta={"name":name})
  在搜狗微信中,訪(fǎng)問(wèn)頻率會(huì )過(guò)快,導致需要輸入驗證碼
   def parse_two(self, response):
print(response.url)
name = response.meta["name"]
resp = response.xpath(&#39;//ul[@class="news-list"]/li&#39;)
s = 1
# 判斷url 是否是需要輸入驗證碼
res = re.search("from", response.url) # 需要驗證碼驗證
if res:
print(response.url)
img = response.xpath(&#39;//img/@src&#39;).extract()
print(img)
url_img = "http://weixin.sogou.com/antispider/"+ img[1]
print(url_img)
url_img = requests.get(url_img).content with open("urli.jpg", "wb") as f:
f.write(url_img) # f.close()
img = input("請輸入驗證碼:")
print(img)
url = response.url
r = re.search(r"from=(.*)",url).group(1)
print(r)
postData = {"c":img,"r":r,"v":"5"}
url = "http://weixin.sogou.com/antispider/thank.php"
yield scrapy.FormRequest(url=url, formdata=postData, callback=self.parse_two,meta={"name":name})
# 不需要驗證碼驗證
else:
for res, i in zip(resp, range(1, 10)):
item = SougouItem()
item["url"] = res.xpath(&#39;.//p[1]/a/@href&#39;).extract_first()
item["name"] = name
print("第%d條" % i) # 轉化永久鏈接
headers = {"Host": "mp.weixin.qq.com",
"Connection": "keep-alive",
"Accept": "application/json, text/javascript, */*; q=0.01",
"X-Requested-With": "XMLHttpRequest",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
"Referer": "https://mp.weixin.qq.com/cgi-b ... ot%3B,
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9",
"Cookie": "noticeLoginFlag=1; pgv_pvi=5269297152; pt2gguin=o1349184918; RK=ph4smy/QWu; ptcz=f3eb6ede5db921d0ada7f1713e6d1ca516d200fec57d602e677245490fcb7f1e; pgv_pvid=1033302674; o_cookie=1349184918; pac_uid=1_1349184918; ua_id=4nooSvHNkTOjpIpgAAAAAFX9OSNcLApfsluzwfClLW8=; mm_lang=zh_CN; noticeLoginFlag=1; remember_acct=Liangkai318; rewardsn=; wxtokenkey=777; pgv_si=s1944231936; uuid=700c40c965347f0925a8e8fdcc1e003e; ticket=023fc8861356b01527983c2c4765ef80903bf3d7; ticket_id=gh_6923d82780e4; cert=L_cE4aRdaZeDnzao3xEbMkcP3Kwuejoi; data_bizuin=3075391054; bizuin=3208078327; data_ticket=XrzOnrV9Odc80hJLtk8vFjTLI1vd7kfKJ9u+DzvaeeHxZkMXbv9kcWk/Pmqx/9g7; slave_sid=SWRKNmFyZ1NkM002Rk9NR0RRVGY5VFdMd1lXSkExWGtPcWJaREkzQ1BESEcyQkNLVlQ3YnB4OFNoNmtRZzdFdGpnVGlHak9LMjJ5eXBNVEgxZDlZb1BZMnlfN1hKdnJsV0NKallsQW91Zjk5Y3prVjlQRDNGYUdGUWNFNEd6eTRYT1FSOEQxT0MwR01Ja0Vo; slave_user=gh_6923d82780e4; xid=7b2245140217dbb3c5c0a552d46b9664; openid2ticket_oTr5Ot_B4nrDSj14zUxlXg8yrzws=D/B6//xK73BoO+mKE2EAjdcgIXNPw/b5PEDTDWM6t+4="}
respon = requests.get(url=item["url"]).content
gongzhongh = etree.HTML(respon).xpath(&#39;//a[@id="post-user"]/text()&#39;)[0]
# times = etree.HTML(respon).xpath(&#39;//*[@id="post-date"]/text()&#39;)[0]
title_one = etree.HTML(respon).xpath(&#39;//*[@id="activity-name"]/text()&#39;)[0].split()[0]
print(gongzhongh, title_one)
item["tit"] = title_one
item["gongzhongh"] = gongzhongh
# item["times"] = times
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + gongzhongh + "&begin=0&count=5"
# wenzhang_url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + item["tit"] + "&fakeid=MzA5MzMxMDk3OQ%3D%3D&type=9"
resp = requests.get(url=url, headers=headers).content
print(resp)
faskeids = json.loads(resp.decode("utf-8"))
try:
list_fask = faskeids["list"] except Exception as f:
print("**********[INFO]:請求失敗,登陸失敗, 請重新登陸*************")
return
for fask in list_fask:
fakeid = fask["fakeid"]
nickname = fask["nickname"] if nickname == item["gongzhongh"]:
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + fakeid + "&type=9"
# url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + item["tit"] + "&fakeid=MzA5MzMxMDk3OQ%3D%3D&type=9"
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B + item["tit"] +"&fakeid=" + fakeid +"&type=9"
resp = requests.get(url=url, headers=headers).content
app = json.loads(resp.decode("utf-8"))["app_msg_list"]
item["aid"] = app["aid"]
item["appmsgid"] = app["appmsgid"]
item["cover"] = app["cover"]
item["digest"] = app["digest"]
item["url_link"] = app["link"]
item["tit"] = app["title"]
print(item)
time.sleep(10) # time.sleep(5)
# dict_wengzhang = json.loads(resp.decode("utf-8"))
# app_msg_list = dict_wengzhang["app_msg_list"]
# print(len(app_msg_list))
# for app in app_msg_list:
# print(app)
# title = app["title"]
# if title == item["tit"]:
# item["url_link"] = app["link"]
# updata_time = app["update_time"]
# item["times"] = time.strftime("%Y-%m-%d %H:%M:%S", updata_time)
# print("最終鏈接為:", item["url_link"])
# yield item
# else:
# print(app["title"], item["tit"])
# print("與所選文章不同放棄")
# # item["tit"] = app["title"]
# # item["url_link"] = app["link"]
# # yield item
# else:
# print(nickname, item["gongzhongh"])
# print("與所選公眾號不一致放棄")
# time.sleep(100)
# yield item
if response.xpath(&#39;//a[@class="np"]&#39;):
s += 1
url = "http://weixin.sogou.com/weixin ... 2Bstr(s) # time.sleep(3)
yield scrapy.Request(url=url, callback=self.parse_two, meta={"name": name})
  以上就是python如何抓取搜狗微信公眾號文章永久鏈接心態(tài)分析的詳細內容,更多詳情請關(guān)注其他相關(guān)php中文網(wǎng)站文章!
  
  免責聲明:本文原創(chuàng )發(fā)表于php中文網(wǎng)。轉載請注明出處。感謝您的尊重!如果您有任何疑問(wèn),請與我們聯(lián)系

querylist采集微信公眾號文章(querylist采集微信公眾號文章信息,再爬取推文代碼源碼)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 105 次瀏覽 ? 2021-11-20 15:01 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(querylist采集微信公眾號文章信息,再爬取推文代碼源碼)
  querylist采集微信公眾號文章信息,爬取公眾號內推文代碼源碼,再爬取推文網(wǎng)頁(yè)源碼。具體代碼和爬取思路:(部分截圖來(lái)自阮一峰大大)1.爬取公眾號文章列表和推文列表獲取公眾號文章列表:2.爬取每一篇推文網(wǎng)頁(yè)源碼獲取推文頁(yè)面地址:3.爬取推文地址、推文文章名、作者、閱讀量對應公眾號地址:下面分步詳細介紹:一、爬取公眾號文章列表1.獲取公眾號文章列表地址:解析公眾號推文列表頁(yè)面,獲取公眾號文章地址,并寫(xiě)入文本表,具體代碼和原代碼參考阮一峰阮一峰的《爬蟲(chóng)開(kāi)發(fā)》博客,在此不再貼出,鏈接如下:阮一峰實(shí)戰教程-爬蟲(chóng)開(kāi)發(fā)2.爬取每一篇推文網(wǎng)頁(yè)源碼、微信公眾號昵稱(chēng)及作者獲取微信公眾號文章源碼:微信公眾號文章源碼地址:。
  與之對應的公眾號文章地址、公眾號昵稱(chēng)及作者:解析列表頁(yè)面獲取所有公眾號文章地址及昵稱(chēng)獲取公眾號名稱(chēng)獲取作者、標題和閱讀量對應文章鏈接解析微信公眾號內容獲取推文每一篇文章對應公眾號鏈接解析每一篇文章地址獲取每一篇推文的標題對應公眾號頁(yè)面解析每一篇推文的標題獲取微信公眾號關(guān)注文章列表獲取微信公眾號內容-每一篇推文列表獲取微信公眾號關(guān)注文章列表獲取所有公眾號文章標題獲取公眾號所有文章名稱(chēng)獲取微信公眾號所有文章內容-文章列表獲取獲取所有推文所有公眾號內容-文章列表獲取微信公眾號所有推文標題獲取所有推文推文內容-文章推文列表獲取每一篇推文所有公眾號公眾號地址獲取公眾號推文網(wǎng)頁(yè)地址獲取每一篇推文地址獲取公眾號推文內容獲取所有公眾號文章內容獲取每一篇文章內容獲取每一篇文章內容獲取公眾號文章鏈接得到所有公眾號文章內容獲取每一篇推文內容獲取所有文章所有鏈接將所有公眾號文章從列表頁(yè)獲取返回到微信公眾號獲取每一篇文章地址2.爬取每一篇推文的文章地址、作者和閱讀量文章所有微信公眾號全部推文地址文章所有微信公眾號全部推文作者和閱讀量全部公眾號文章鏈接獲取每一篇推文推文鏈接解析每一篇推文推文鏈接獲取所有推文的標題獲取每一篇推文的標題解析每一篇推文的標題獲取所有推文的文章鏈接獲取所有推文內容獲取所有推文文章鏈接解析每一篇推文文章鏈接獲取所有推文文章內容獲取每一篇推文內容獲取所有推文內容獲取所有推文內容獲取所有推文內容獲取每一篇推文文章鏈接獲取每一篇推文文章鏈接獲取每一篇推文文章鏈接獲取所有推文文章地址獲取每一篇推文文章地址獲取所有推文的文章鏈接解析所有推文文章鏈接獲取所有推文的地址解析每一篇推文標題獲取所有推文的標題解析所有推文標題獲取所有推文文章鏈接解。 查看全部

  querylist采集微信公眾號文章(querylist采集微信公眾號文章信息,再爬取推文代碼源碼)
  querylist采集微信公眾號文章信息,爬取公眾號內推文代碼源碼,再爬取推文網(wǎng)頁(yè)源碼。具體代碼和爬取思路:(部分截圖來(lái)自阮一峰大大)1.爬取公眾號文章列表和推文列表獲取公眾號文章列表:2.爬取每一篇推文網(wǎng)頁(yè)源碼獲取推文頁(yè)面地址:3.爬取推文地址、推文文章名、作者、閱讀量對應公眾號地址:下面分步詳細介紹:一、爬取公眾號文章列表1.獲取公眾號文章列表地址:解析公眾號推文列表頁(yè)面,獲取公眾號文章地址,并寫(xiě)入文本表,具體代碼和原代碼參考阮一峰阮一峰的《爬蟲(chóng)開(kāi)發(fā)》博客,在此不再貼出,鏈接如下:阮一峰實(shí)戰教程-爬蟲(chóng)開(kāi)發(fā)2.爬取每一篇推文網(wǎng)頁(yè)源碼、微信公眾號昵稱(chēng)及作者獲取微信公眾號文章源碼:微信公眾號文章源碼地址:。
  與之對應的公眾號文章地址、公眾號昵稱(chēng)及作者:解析列表頁(yè)面獲取所有公眾號文章地址及昵稱(chēng)獲取公眾號名稱(chēng)獲取作者、標題和閱讀量對應文章鏈接解析微信公眾號內容獲取推文每一篇文章對應公眾號鏈接解析每一篇文章地址獲取每一篇推文的標題對應公眾號頁(yè)面解析每一篇推文的標題獲取微信公眾號關(guān)注文章列表獲取微信公眾號內容-每一篇推文列表獲取微信公眾號關(guān)注文章列表獲取所有公眾號文章標題獲取公眾號所有文章名稱(chēng)獲取微信公眾號所有文章內容-文章列表獲取獲取所有推文所有公眾號內容-文章列表獲取微信公眾號所有推文標題獲取所有推文推文內容-文章推文列表獲取每一篇推文所有公眾號公眾號地址獲取公眾號推文網(wǎng)頁(yè)地址獲取每一篇推文地址獲取公眾號推文內容獲取所有公眾號文章內容獲取每一篇文章內容獲取每一篇文章內容獲取公眾號文章鏈接得到所有公眾號文章內容獲取每一篇推文內容獲取所有文章所有鏈接將所有公眾號文章從列表頁(yè)獲取返回到微信公眾號獲取每一篇文章地址2.爬取每一篇推文的文章地址、作者和閱讀量文章所有微信公眾號全部推文地址文章所有微信公眾號全部推文作者和閱讀量全部公眾號文章鏈接獲取每一篇推文推文鏈接解析每一篇推文推文鏈接獲取所有推文的標題獲取每一篇推文的標題解析每一篇推文的標題獲取所有推文的文章鏈接獲取所有推文內容獲取所有推文文章鏈接解析每一篇推文文章鏈接獲取所有推文文章內容獲取每一篇推文內容獲取所有推文內容獲取所有推文內容獲取所有推文內容獲取每一篇推文文章鏈接獲取每一篇推文文章鏈接獲取每一篇推文文章鏈接獲取所有推文文章地址獲取每一篇推文文章地址獲取所有推文的文章鏈接解析所有推文文章鏈接獲取所有推文的地址解析每一篇推文標題獲取所有推文的標題解析所有推文標題獲取所有推文文章鏈接解。

querylist采集微信公眾號文章( “內容為王”的時(shí)代,網(wǎng)站什么樣的內容才算好? )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 136 次瀏覽 ? 2021-11-18 15:06 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(
“內容為王”的時(shí)代,網(wǎng)站什么樣的內容才算好?
)
  
  在“內容為王”的時(shí)代,網(wǎng)站什么樣的內容好?有價(jià)值的內容只有原創(chuàng )文章嗎?事實(shí)上,這種想法是錯誤的。其實(shí)對于搜索引擎來(lái)說(shuō),無(wú)論你是原創(chuàng )文章還是偽原創(chuàng )文章,都能滿(mǎn)足用戶(hù)的需求。解決用戶(hù)問(wèn)題的優(yōu)質(zhì)內容,這樣的內容對用戶(hù)來(lái)說(shuō)是有價(jià)值的內容。這就是搜索引擎喜歡的。對于采集的站長(cháng),有價(jià)值的內容/優(yōu)質(zhì)的內容,我會(huì )選擇微信公眾號文章。到采集官方賬號的文章填寫(xiě)我們的網(wǎng)站,如下所示:
  
  為什么選擇采集微信公眾號文章?
  1、原創(chuàng ) 高度,減少同質(zhì)化
  2、 的互動(dòng)性很強,大多數 文章 內容傾向于與讀者互動(dòng)。非純信息網(wǎng)站,發(fā)布后無(wú)互動(dòng)
  3、布局干凈,采集垃圾郵件很少
  4、模板是固定的,不像很多博主經(jīng)常更換博客模板導致采集規則失效
  在這種情況下,就意味著(zhù)微信公眾號文章采集是可行的,但是如果想讓公眾號文章產(chǎn)生有價(jià)值的文章內容,就需要重點(diǎn)關(guān)注就以下三個(gè)點(diǎn)擊繼續:
  1.關(guān)注目標用戶(hù)
  文章 內容是否有價(jià)值,取決于能否解決用戶(hù)的問(wèn)題。這意味著(zhù)在填寫(xiě)內容時(shí),你需要明確用戶(hù)點(diǎn)擊進(jìn)入你的網(wǎng)站最希望得到什么信息。比如用戶(hù)想知道怎么做SEO優(yōu)化,我們文章的內容需要描述什么是SEO優(yōu)化,SEO優(yōu)化的過(guò)程,做SEO優(yōu)化時(shí)的注意事項等等,這也是我們經(jīng)常說(shuō)的說(shuō)“干貨”。
  2.內容標題簡(jiǎn)單易懂,能吸引眼球
  文章 內容的標題決定了用戶(hù)是否點(diǎn)擊你的文章進(jìn)行瀏覽。如果文章的標題不允許用戶(hù)“掃一掃”流程,他們可以大致了解里面的內容。什么是簡(jiǎn)短的描述,或者標題太簡(jiǎn)單明了,那么用戶(hù)遺漏的幾率非常高。如果文章沒(méi)有被用戶(hù)點(diǎn)擊瀏覽,里面的內容將是有價(jià)值的,不會(huì )被其他人發(fā)現。
  3.需要結合自己的獨立思考
  雖然說(shuō)是公眾號的內容,但不能直接按照原作者的想法來(lái)寫(xiě)。還需要用自己的獨立思考去思考用戶(hù)在搜索時(shí)還存在哪些問(wèn)題,并補充文章的內容,使文章的內容更加全面、簡(jiǎn)單易懂,這樣以更好地滿(mǎn)足用戶(hù)的需求。
   查看全部

  querylist采集微信公眾號文章(
“內容為王”的時(shí)代,網(wǎng)站什么樣的內容才算好?
)
  
  在“內容為王”的時(shí)代,網(wǎng)站什么樣的內容好?有價(jià)值的內容只有原創(chuàng )文章嗎?事實(shí)上,這種想法是錯誤的。其實(shí)對于搜索引擎來(lái)說(shuō),無(wú)論你是原創(chuàng )文章還是偽原創(chuàng )文章,都能滿(mǎn)足用戶(hù)的需求。解決用戶(hù)問(wèn)題的優(yōu)質(zhì)內容,這樣的內容對用戶(hù)來(lái)說(shuō)是有價(jià)值的內容。這就是搜索引擎喜歡的。對于采集的站長(cháng),有價(jià)值的內容/優(yōu)質(zhì)的內容,我會(huì )選擇微信公眾號文章。到采集官方賬號的文章填寫(xiě)我們的網(wǎng)站,如下所示:
  
  為什么選擇采集微信公眾號文章?
  1、原創(chuàng ) 高度,減少同質(zhì)化
  2、 的互動(dòng)性很強,大多數 文章 內容傾向于與讀者互動(dòng)。非純信息網(wǎng)站,發(fā)布后無(wú)互動(dòng)
  3、布局干凈,采集垃圾郵件很少
  4、模板是固定的,不像很多博主經(jīng)常更換博客模板導致采集規則失效
  在這種情況下,就意味著(zhù)微信公眾號文章采集是可行的,但是如果想讓公眾號文章產(chǎn)生有價(jià)值的文章內容,就需要重點(diǎn)關(guān)注就以下三個(gè)點(diǎn)擊繼續:
  1.關(guān)注目標用戶(hù)
  文章 內容是否有價(jià)值,取決于能否解決用戶(hù)的問(wèn)題。這意味著(zhù)在填寫(xiě)內容時(shí),你需要明確用戶(hù)點(diǎn)擊進(jìn)入你的網(wǎng)站最希望得到什么信息。比如用戶(hù)想知道怎么做SEO優(yōu)化,我們文章的內容需要描述什么是SEO優(yōu)化,SEO優(yōu)化的過(guò)程,做SEO優(yōu)化時(shí)的注意事項等等,這也是我們經(jīng)常說(shuō)的說(shuō)“干貨”。
  2.內容標題簡(jiǎn)單易懂,能吸引眼球
  文章 內容的標題決定了用戶(hù)是否點(diǎn)擊你的文章進(jìn)行瀏覽。如果文章的標題不允許用戶(hù)“掃一掃”流程,他們可以大致了解里面的內容。什么是簡(jiǎn)短的描述,或者標題太簡(jiǎn)單明了,那么用戶(hù)遺漏的幾率非常高。如果文章沒(méi)有被用戶(hù)點(diǎn)擊瀏覽,里面的內容將是有價(jià)值的,不會(huì )被其他人發(fā)現。
  3.需要結合自己的獨立思考
  雖然說(shuō)是公眾號的內容,但不能直接按照原作者的想法來(lái)寫(xiě)。還需要用自己的獨立思考去思考用戶(hù)在搜索時(shí)還存在哪些問(wèn)題,并補充文章的內容,使文章的內容更加全面、簡(jiǎn)單易懂,這樣以更好地滿(mǎn)足用戶(hù)的需求。
  

querylist采集微信公眾號文章(謝邀,查找公眾號文章數據的一種新方法)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 144 次瀏覽 ? 2021-11-15 19:00 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(謝邀,查找公眾號文章數據的一種新方法)
  querylist采集微信公眾號文章數據的一種新方法,可以很好地定位到某篇文章,可以先研究一下,最終要知道實(shí)際數據是來(lái)自于哪一篇公眾號的文章數據,根據文章內容進(jìn)行切分成多個(gè)querylist,獲取這些querylist進(jìn)行匹配的時(shí)候,對應querylist可以定位到文章內容。
  一個(gè)sqlmap命令就可以。
  dropquerylist
  在python中querylist就是文章querylist.range_by_date(自己想想就清楚了,
  謝邀mysqlquerylist需要哪些字段,有幾列,怎么輸出?mysql在查詢(xún)中使用mysql_query()函數可以,用于獲取數據結構表中索引相關(guān)的列。
  mysql的話(huà),
  如果數據量大,并且文章沒(méi)有id。請用pymysql庫,注意版本不要太老。數據量小,公眾號logo,標題作為特征也是可以的。
  謝邀,查找公眾號文章數據是通過(guò)人工匹配用戶(hù)標簽確定你要查找的公眾號的logo和標題,此外可以輔助使用table.choose_from_list函數查找到相應的文章列表,
  我有一個(gè)問(wèn)題,你做的是什么爬蟲(chóng)?不同的搜索引擎寫(xiě)的代碼必然是不一樣的。目前selenium還不好用吧。推薦一個(gè)第三方庫phantomjs爬蟲(chóng),挺好用的。 查看全部

  querylist采集微信公眾號文章(謝邀,查找公眾號文章數據的一種新方法)
  querylist采集微信公眾號文章數據的一種新方法,可以很好地定位到某篇文章,可以先研究一下,最終要知道實(shí)際數據是來(lái)自于哪一篇公眾號的文章數據,根據文章內容進(jìn)行切分成多個(gè)querylist,獲取這些querylist進(jìn)行匹配的時(shí)候,對應querylist可以定位到文章內容。
  一個(gè)sqlmap命令就可以。
  dropquerylist
  在python中querylist就是文章querylist.range_by_date(自己想想就清楚了,
  謝邀mysqlquerylist需要哪些字段,有幾列,怎么輸出?mysql在查詢(xún)中使用mysql_query()函數可以,用于獲取數據結構表中索引相關(guān)的列。
  mysql的話(huà),
  如果數據量大,并且文章沒(méi)有id。請用pymysql庫,注意版本不要太老。數據量小,公眾號logo,標題作為特征也是可以的。
  謝邀,查找公眾號文章數據是通過(guò)人工匹配用戶(hù)標簽確定你要查找的公眾號的logo和標題,此外可以輔助使用table.choose_from_list函數查找到相應的文章列表,
  我有一個(gè)問(wèn)題,你做的是什么爬蟲(chóng)?不同的搜索引擎寫(xiě)的代碼必然是不一樣的。目前selenium還不好用吧。推薦一個(gè)第三方庫phantomjs爬蟲(chóng),挺好用的。

querylist采集微信公眾號文章(Python模擬安卓App操作微信App的方法(詳見(jiàn)代碼介紹))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 157 次瀏覽 ? 2021-11-15 09:03 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(Python模擬安卓App操作微信App的方法(詳見(jiàn)代碼介紹))
  本文文章主要介紹了基于Python采集的微信公眾號歷史數據爬取。文章中介紹的示例代碼非常詳細,對大家的學(xué)習或工作有一定的參考學(xué)習價(jià)值。有需要的朋友可以參考
  鯤志鵬的技術(shù)人員將在本文中介紹一種采集通過(guò)模擬微信App的操作來(lái)指定公眾號所有歷史數據的方法。
  通過(guò)我們的抓包分析,我們發(fā)現微信公眾號的歷史數據是通過(guò)HTTP協(xié)議加載的。對應的API接口如下圖所示,其中有四個(gè)關(guān)鍵參數(__biz、appmsg_token、pass_ticket、Cookie)。
  
  為了能夠得到這四個(gè)參數,我們需要模擬App的運行,讓它生成這些參數,然后我們就可以抓包了。對于模擬App操作,我們介紹了通過(guò)Python模擬Android App的方法(詳見(jiàn)詳情)。對于 HTTP 集成捕獲,我們之前已經(jīng)引入了 Mitmproxy(查看詳情)。
  我們需要模擬微信的操作來(lái)完成以下步驟:
  1. 推出微信應用
  2. 點(diǎn)擊“聯(lián)系人”
  3. 點(diǎn)擊“公眾號”
  4.點(diǎn)擊公眾號進(jìn)入采集
  5. 點(diǎn)擊右上角的用戶(hù)頭像圖標
  6. 點(diǎn)擊“所有消息”
  
  
  此時(shí),我們可以從響應數據中捕捉到__biz、appmsg_token、pass_ticket這三個(gè)關(guān)鍵參數,以及請求頭中的Cookie值。如下所示。
  
  
  有了以上四個(gè)參數,我們就可以構造一個(gè)API請求來(lái)獲取歷史文章列表,通過(guò)調用API接口直接獲取數據(無(wú)需模擬App操作)。核心參數如下。通過(guò)改變偏移參數,可以得到所有的歷史數據。
   # Cookie headers = {'Cookie': 'rewardsn=; wxtokenkey=777; wxuin=584068438; devicetype=android-19; version=26060736; lang=zh_CN; pass_ticket=Rr8cO5c2******3tKGqe7aVZzV9TupvrK+1uHHmHYQGL2WFdKIE; wap_sid2=COKhxu4KElxckFZQ3QzTHU4WThEUk0zcWdrZjhGcUdYdEVSV3Y1X2NPWHNUakRrd1ZzMnpLTERpdE5rbmxjSTg******dlRBcUNRazZpOGxTZUVEQUTgNQJVO'} url = 'https://mp.weixin.qq.com/mp/profile_ext?' data = {} data['is_ok'] = '1' data['count'] = '10' data['wxtoken'] = '' data['f'] = 'json' data['scene'] = '124' data['uin'] = '777' data['key'] = '777' data['offset'] = '0' data['action'] = 'getmsg' data['x5'] = '0' # 下面三個(gè)參數需要替換 # https://mp.weixin.qq.com/mp/pr ... Dhome應答數據里會(huì )暴漏這三個(gè)參數 data['__biz'] = 'MjM5MzQyOTM1OQ==' data['appmsg_token'] = '993_V8%2BEmfVD7g%2FvMZ****4DNUJNFkg~~' data['pass_ticket'] = 'Rr8cO5c23ZngeQHRGy8E7gv*****pvrK+1uHHmHYQGL2WFdKIE' url = url + urllib.urlencode(data)
  以“數字工廠(chǎng)”微信公眾號為例,采集的過(guò)程截圖如下:
  
  輸出結果截圖如下:
  
  以上就是基于Python采集爬取微信公眾號歷史數據的詳細內容。更多詳情請關(guān)注其他相關(guān)html中文網(wǎng)站文章! 查看全部

  querylist采集微信公眾號文章(Python模擬安卓App操作微信App的方法(詳見(jiàn)代碼介紹))
  本文文章主要介紹了基于Python采集的微信公眾號歷史數據爬取。文章中介紹的示例代碼非常詳細,對大家的學(xué)習或工作有一定的參考學(xué)習價(jià)值。有需要的朋友可以參考
  鯤志鵬的技術(shù)人員將在本文中介紹一種采集通過(guò)模擬微信App的操作來(lái)指定公眾號所有歷史數據的方法。
  通過(guò)我們的抓包分析,我們發(fā)現微信公眾號的歷史數據是通過(guò)HTTP協(xié)議加載的。對應的API接口如下圖所示,其中有四個(gè)關(guān)鍵參數(__biz、appmsg_token、pass_ticket、Cookie)。
  
  為了能夠得到這四個(gè)參數,我們需要模擬App的運行,讓它生成這些參數,然后我們就可以抓包了。對于模擬App操作,我們介紹了通過(guò)Python模擬Android App的方法(詳見(jiàn)詳情)。對于 HTTP 集成捕獲,我們之前已經(jīng)引入了 Mitmproxy(查看詳情)。
  我們需要模擬微信的操作來(lái)完成以下步驟:
  1. 推出微信應用
  2. 點(diǎn)擊“聯(lián)系人”
  3. 點(diǎn)擊“公眾號”
  4.點(diǎn)擊公眾號進(jìn)入采集
  5. 點(diǎn)擊右上角的用戶(hù)頭像圖標
  6. 點(diǎn)擊“所有消息”
  
  
  此時(shí),我們可以從響應數據中捕捉到__biz、appmsg_token、pass_ticket這三個(gè)關(guān)鍵參數,以及請求頭中的Cookie值。如下所示。
  
  
  有了以上四個(gè)參數,我們就可以構造一個(gè)API請求來(lái)獲取歷史文章列表,通過(guò)調用API接口直接獲取數據(無(wú)需模擬App操作)。核心參數如下。通過(guò)改變偏移參數,可以得到所有的歷史數據。
   # Cookie headers = {'Cookie': 'rewardsn=; wxtokenkey=777; wxuin=584068438; devicetype=android-19; version=26060736; lang=zh_CN; pass_ticket=Rr8cO5c2******3tKGqe7aVZzV9TupvrK+1uHHmHYQGL2WFdKIE; wap_sid2=COKhxu4KElxckFZQ3QzTHU4WThEUk0zcWdrZjhGcUdYdEVSV3Y1X2NPWHNUakRrd1ZzMnpLTERpdE5rbmxjSTg******dlRBcUNRazZpOGxTZUVEQUTgNQJVO'} url = 'https://mp.weixin.qq.com/mp/profile_ext?' data = {} data['is_ok'] = '1' data['count'] = '10' data['wxtoken'] = '' data['f'] = 'json' data['scene'] = '124' data['uin'] = '777' data['key'] = '777' data['offset'] = '0' data['action'] = 'getmsg' data['x5'] = '0' # 下面三個(gè)參數需要替換 # https://mp.weixin.qq.com/mp/pr ... Dhome應答數據里會(huì )暴漏這三個(gè)參數 data['__biz'] = 'MjM5MzQyOTM1OQ==' data['appmsg_token'] = '993_V8%2BEmfVD7g%2FvMZ****4DNUJNFkg~~' data['pass_ticket'] = 'Rr8cO5c23ZngeQHRGy8E7gv*****pvrK+1uHHmHYQGL2WFdKIE' url = url + urllib.urlencode(data)
  以“數字工廠(chǎng)”微信公眾號為例,采集的過(guò)程截圖如下:
  
  輸出結果截圖如下:
  
  以上就是基于Python采集爬取微信公眾號歷史數據的詳細內容。更多詳情請關(guān)注其他相關(guān)html中文網(wǎng)站文章!

querylist采集微信公眾號文章(微信公眾號文章的GET及GET方法(二))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 197 次瀏覽 ? 2021-11-14 17:11 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信公眾號文章的GET及GET方法(二))
  一.思考
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二. 接口分析
  獲取微信公眾號接口: 參數:action=search_biz begin=0 count=5 query=公眾號token=每個(gè)賬戶(hù)對應的Token值 lang=zh_CN f=json ajax=1 請求方式:GET 所以在這個(gè)界面我們您只需要獲取token,查詢(xún)就是您需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。
  
  獲取對應公眾號文章的接口: 參數:action=list_ex begin=0 count=5 fakeid=MjM5NDAwMTA2MA== type=9 query= token=557131216 lang=zh_CN f=json ajax=1 請求方式: GET這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以獲取到微信公眾號文章的數據了。
  
  三.實(shí)現第一步:
  首先我們需要通過(guò)selenium模擬登錄,然后獲取cookie和對應的token
  def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get(&#39;https://mp.weixin.qq.com/&#39;)
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class=&#39;login__type__container__select-type&#39;]").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name=&#39;account&#39;]")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name=&#39;password&#39;]")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class=&#39;btn_login&#39;]").click()
sleep(2)
# 微信登錄驗證
print(&#39;請掃描二維碼&#39;)
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get(&#39;https://mp.weixin.qq.com/&#39;)
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item[&#39;name&#39;]] = item[&#39;value&#39;]
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open(&#39;cookie.txt&#39;, &#39;w+&#39;, encoding=&#39;utf-8&#39;) as f:
f.write(cookie_str)
print(&#39;cookie保存到本地成功&#39;)
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split(&#39;?&#39;)[1].split(&#39;&&#39;)
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split(&#39;=&#39;)[0]] = item.split(&#39;=&#39;)[1]
# 返回token
return paramdict[&#39;token&#39;]
  定義了一個(gè)登錄方法,里面的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。通過(guò)模擬用戶(hù),輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,您可以使用登錄的微信掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token,然后返回。
  第二步:1.請求對應的公眾號接口,得到我們需要的fakeid
   url = &#39;https://mp.weixin.qq.com&#39;
headers = {
&#39;HOST&#39;: &#39;mp.weixin.qq.com&#39;,
&#39;User-Agent&#39;: &#39;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&#39;
}
with open(&#39;cookie.txt&#39;, &#39;r&#39;, encoding=&#39;utf-8&#39;) as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = &#39;https://mp.weixin.qq.com/cgi-b ... 39%3B
params = {
&#39;action&#39;: &#39;search_biz&#39;,
&#39;begin&#39;: &#39;0&#39;,
&#39;count&#39;: &#39;5&#39;,
&#39;query&#39;: &#39;搜索的公眾號名稱(chēng)&#39;,
&#39;token&#39;: token,
&#39;lang&#39;: &#39;zh_CN&#39;,
&#39;f&#39;: &#39;json&#39;,
&#39;ajax&#39;: &#39;1&#39;
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取返回的微信公眾號的json數據
  lists = search_resp.json().get(&#39;list&#39;)[0]
  通過(guò)上面的代碼可以得到對應的公眾號數據
  fakeid = lists.get(&#39;fakeid&#39;)
  通過(guò)上面的代碼可以得到對應的fakeid
  2.請求獲取微信公眾號文章接口,獲取我們需要的數據文章
   appmsg_url = &#39;https://mp.weixin.qq.com/cgi-bin/appmsg?&#39;
params_data = {
&#39;action&#39;: &#39;list_ex&#39;,
&#39;begin&#39;: &#39;0&#39;,
&#39;count&#39;: &#39;5&#39;,
&#39;fakeid&#39;: fakeid,
&#39;type&#39;: &#39;9&#39;,
&#39;query&#39;: &#39;&#39;,
&#39;token&#39;: token,
&#39;lang&#39;: &#39;zh_CN&#39;,
&#39;f&#39;: &#39;json&#39;,
&#39;ajax&#39;: &#39;1&#39;
}
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í)間,否則賬號很容易被封,獲取不到返回的數據。
  PS:如需Python學(xué)習資料,可點(diǎn)擊下方鏈接自行獲取
  Python免費學(xué)習資料和群交流答案 點(diǎn)擊加入 查看全部

  querylist采集微信公眾號文章(微信公眾號文章的GET及GET方法(二))
  一.思考
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二. 接口分析
  獲取微信公眾號接口: 參數:action=search_biz begin=0 count=5 query=公眾號token=每個(gè)賬戶(hù)對應的Token值 lang=zh_CN f=json ajax=1 請求方式:GET 所以在這個(gè)界面我們您只需要獲取token,查詢(xún)就是您需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。
  
  獲取對應公眾號文章的接口: 參數:action=list_ex begin=0 count=5 fakeid=MjM5NDAwMTA2MA== type=9 query= token=557131216 lang=zh_CN f=json ajax=1 請求方式: GET這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以獲取到微信公眾號文章的數據了。
  
  三.實(shí)現第一步:
  首先我們需要通過(guò)selenium模擬登錄,然后獲取cookie和對應的token
  def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get(&#39;https://mp.weixin.qq.com/&#39;)
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class=&#39;login__type__container__select-type&#39;]").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name=&#39;account&#39;]")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name=&#39;password&#39;]")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class=&#39;btn_login&#39;]").click()
sleep(2)
# 微信登錄驗證
print(&#39;請掃描二維碼&#39;)
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get(&#39;https://mp.weixin.qq.com/&#39;)
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item[&#39;name&#39;]] = item[&#39;value&#39;]
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open(&#39;cookie.txt&#39;, &#39;w+&#39;, encoding=&#39;utf-8&#39;) as f:
f.write(cookie_str)
print(&#39;cookie保存到本地成功&#39;)
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split(&#39;?&#39;)[1].split(&#39;&&#39;)
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split(&#39;=&#39;)[0]] = item.split(&#39;=&#39;)[1]
# 返回token
return paramdict[&#39;token&#39;]
  定義了一個(gè)登錄方法,里面的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。通過(guò)模擬用戶(hù),輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,您可以使用登錄的微信掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token,然后返回。
  第二步:1.請求對應的公眾號接口,得到我們需要的fakeid
   url = &#39;https://mp.weixin.qq.com&#39;
headers = {
&#39;HOST&#39;: &#39;mp.weixin.qq.com&#39;,
&#39;User-Agent&#39;: &#39;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&#39;
}
with open(&#39;cookie.txt&#39;, &#39;r&#39;, encoding=&#39;utf-8&#39;) as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = &#39;https://mp.weixin.qq.com/cgi-b ... 39%3B
params = {
&#39;action&#39;: &#39;search_biz&#39;,
&#39;begin&#39;: &#39;0&#39;,
&#39;count&#39;: &#39;5&#39;,
&#39;query&#39;: &#39;搜索的公眾號名稱(chēng)&#39;,
&#39;token&#39;: token,
&#39;lang&#39;: &#39;zh_CN&#39;,
&#39;f&#39;: &#39;json&#39;,
&#39;ajax&#39;: &#39;1&#39;
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取返回的微信公眾號的json數據
  lists = search_resp.json().get(&#39;list&#39;)[0]
  通過(guò)上面的代碼可以得到對應的公眾號數據
  fakeid = lists.get(&#39;fakeid&#39;)
  通過(guò)上面的代碼可以得到對應的fakeid
  2.請求獲取微信公眾號文章接口,獲取我們需要的數據文章
   appmsg_url = &#39;https://mp.weixin.qq.com/cgi-bin/appmsg?&#39;
params_data = {
&#39;action&#39;: &#39;list_ex&#39;,
&#39;begin&#39;: &#39;0&#39;,
&#39;count&#39;: &#39;5&#39;,
&#39;fakeid&#39;: fakeid,
&#39;type&#39;: &#39;9&#39;,
&#39;query&#39;: &#39;&#39;,
&#39;token&#39;: token,
&#39;lang&#39;: &#39;zh_CN&#39;,
&#39;f&#39;: &#39;json&#39;,
&#39;ajax&#39;: &#39;1&#39;
}
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í)間,否則賬號很容易被封,獲取不到返回的數據。
  PS:如需Python學(xué)習資料,可點(diǎn)擊下方鏈接自行獲取
  Python免費學(xué)習資料和群交流答案 點(diǎn)擊加入

querylist采集微信公眾號文章( 微信小程序中如何打開(kāi)公眾號中的文章(圖))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 174 次瀏覽 ? 2021-11-13 14:08 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(
微信小程序中如何打開(kāi)公眾號中的文章(圖))
  微信小程序獲取文章公眾號列表,顯示文章示例代碼
  更新時(shí)間:2020年3月10日16:08:20 作者:YO_RUI
  本文文章主要介紹微信小程序獲取公眾號列表文章以及顯示文章的示例代碼。文章中介紹的示例代碼非常詳細,對大家的學(xué)習或者工作都有一定的借鑒作用。參考學(xué)習的價(jià)值,有需要的朋友,和小編一起學(xué)習吧。
  如何在微信小程序中打開(kāi)公眾號中的文章,步驟比較簡(jiǎn)單。
  1、公眾號設置
  如果小程序想要獲取公眾號的資料,公眾號需要做一些設置。
  1.1個(gè)綁定小程序
  公眾號需要綁定目標小程序,否則無(wú)法開(kāi)通公眾號文章。
  在公眾號管理界面,點(diǎn)擊小程序管理--&gt; 關(guān)聯(lián)小程序
  
  輸入小程序的AppID進(jìn)行搜索綁定。
  
  1.2 公眾號開(kāi)發(fā)者功能配置
 ?。?)在公眾號管理界面,點(diǎn)擊開(kāi)發(fā)模塊中的基本配置選項。
  
 ?。?) 打開(kāi)開(kāi)發(fā)者密文(AppSecret),注意保存并修改密文。
 ?。?) 設置ip白名單,這個(gè)是發(fā)起請求的機器的外網(wǎng)ip,如果是在自己的電腦上,就是自己電腦的外網(wǎng)ip。如果部署到server,是服務(wù)器的外網(wǎng)ip。
  
  2、獲取文章信息的步驟
  以下僅作為演示。
  實(shí)際項目中,在自己的服務(wù)器程序中獲取,不要直接在小程序中獲取,畢竟需要用到appid、appsecret等高機密參數。
  2.1 獲取 access_token
  access_token是公眾號全局唯一的接口調用憑證,公眾號在調用各個(gè)接口時(shí)需要使用access_token。API 文檔
  
private String getToken() throws MalformedURLException, IOException, ProtocolException {
// access_token接口https請求方式: GET https://api.weixin.qq.com/cgi- ... ECRET
String path = " https://api.weixin.qq.com/cgi- ... 3B%3B
String appid = "公眾號的開(kāi)發(fā)者ID(AppID)";
String secret = "公眾號的開(kāi)發(fā)者密碼(AppSecret)";
URL url = new URL(path+"&appid=" + appid + "&secret=" + secret);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();

InputStream in = connection.getInputStream();
byte[] b = new byte[100];
int len = -1;
StringBuffer sb = new StringBuffer();
while((len = in.read(b)) != -1) {
sb.append(new String(b,0,len));
}

System.out.println(sb.toString());
in.close();
return sb.toString();
}
  2.2 獲取文章的列表
  API 文檔
  
private String getContentList(String token) throws IOException {
String path = " https://api.weixin.qq.com/cgi- ... ot%3B + token;
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("content-type", "application/json;charset=utf-8");
connection.connect();
// post發(fā)送的參數
Map map = new HashMap();
map.put("type", "news"); // news表示圖文類(lèi)型的素材,具體看API文檔
map.put("offset", 0);
map.put("count", 1);
// 將map轉換成json字符串
String paramBody = JSON.toJSONString(map); // 這里用了Alibaba的fastjson

OutputStream out = connection.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
bw.write(paramBody); // 向流中寫(xiě)入參數字符串
bw.flush();

InputStream in = connection.getInputStream();
byte[] b = new byte[100];
int len = -1;
StringBuffer sb = new StringBuffer();
while((len = in.read(b)) != -1) {
sb.append(new String(b,0,len));
}

in.close();
return sb.toString();
}
  測試:
  
@Test
public void test() throws IOException {

String result1 = getToken();
Map token = (Map) JSON.parseObject(result1);
String result2 = getContentList(token.get("access_token").toString());
System.out.println(result2);
}
  
  轉換成json格式,參數說(shuō)明見(jiàn)上面API文檔
  
  
  第二張圖中的url為公眾號文章的地址。將有與獲得的 tem 項目數量一樣多的項目。只要得到以上結果,在小程序中打開(kāi)公眾號文章已經(jīng)成功過(guò)半。
  最后在小程序中使用組件打開(kāi),src為文章的url地址。
  
  本文介紹微信小程序獲取公眾號文章列表并展示文章文章的示例代碼,以及更多獲取公眾號的相關(guān)小程序文章列表內容請搜索腳本之家之前的文章或繼續瀏覽下方的相關(guān)文章。希望大家以后多多支持Script Home! 查看全部

  querylist采集微信公眾號文章(
微信小程序中如何打開(kāi)公眾號中的文章(圖))
  微信小程序獲取文章公眾號列表,顯示文章示例代碼
  更新時(shí)間:2020年3月10日16:08:20 作者:YO_RUI
  本文文章主要介紹微信小程序獲取公眾號列表文章以及顯示文章的示例代碼。文章中介紹的示例代碼非常詳細,對大家的學(xué)習或者工作都有一定的借鑒作用。參考學(xué)習的價(jià)值,有需要的朋友,和小編一起學(xué)習吧。
  如何在微信小程序中打開(kāi)公眾號中的文章,步驟比較簡(jiǎn)單。
  1、公眾號設置
  如果小程序想要獲取公眾號的資料,公眾號需要做一些設置。
  1.1個(gè)綁定小程序
  公眾號需要綁定目標小程序,否則無(wú)法開(kāi)通公眾號文章。
  在公眾號管理界面,點(diǎn)擊小程序管理--&gt; 關(guān)聯(lián)小程序
  
  輸入小程序的AppID進(jìn)行搜索綁定。
  
  1.2 公眾號開(kāi)發(fā)者功能配置
 ?。?)在公眾號管理界面,點(diǎn)擊開(kāi)發(fā)模塊中的基本配置選項。
  
 ?。?) 打開(kāi)開(kāi)發(fā)者密文(AppSecret),注意保存并修改密文。
 ?。?) 設置ip白名單,這個(gè)是發(fā)起請求的機器的外網(wǎng)ip,如果是在自己的電腦上,就是自己電腦的外網(wǎng)ip。如果部署到server,是服務(wù)器的外網(wǎng)ip。
  
  2、獲取文章信息的步驟
  以下僅作為演示。
  實(shí)際項目中,在自己的服務(wù)器程序中獲取,不要直接在小程序中獲取,畢竟需要用到appid、appsecret等高機密參數。
  2.1 獲取 access_token
  access_token是公眾號全局唯一的接口調用憑證,公眾號在調用各個(gè)接口時(shí)需要使用access_token。API 文檔
  
private String getToken() throws MalformedURLException, IOException, ProtocolException {
// access_token接口https請求方式: GET https://api.weixin.qq.com/cgi- ... ECRET
String path = " https://api.weixin.qq.com/cgi- ... 3B%3B
String appid = "公眾號的開(kāi)發(fā)者ID(AppID)";
String secret = "公眾號的開(kāi)發(fā)者密碼(AppSecret)";
URL url = new URL(path+"&appid=" + appid + "&secret=" + secret);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();

InputStream in = connection.getInputStream();
byte[] b = new byte[100];
int len = -1;
StringBuffer sb = new StringBuffer();
while((len = in.read(b)) != -1) {
sb.append(new String(b,0,len));
}

System.out.println(sb.toString());
in.close();
return sb.toString();
}
  2.2 獲取文章的列表
  API 文檔
  
private String getContentList(String token) throws IOException {
String path = " https://api.weixin.qq.com/cgi- ... ot%3B + token;
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("content-type", "application/json;charset=utf-8");
connection.connect();
// post發(fā)送的參數
Map map = new HashMap();
map.put("type", "news"); // news表示圖文類(lèi)型的素材,具體看API文檔
map.put("offset", 0);
map.put("count", 1);
// 將map轉換成json字符串
String paramBody = JSON.toJSONString(map); // 這里用了Alibaba的fastjson

OutputStream out = connection.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
bw.write(paramBody); // 向流中寫(xiě)入參數字符串
bw.flush();

InputStream in = connection.getInputStream();
byte[] b = new byte[100];
int len = -1;
StringBuffer sb = new StringBuffer();
while((len = in.read(b)) != -1) {
sb.append(new String(b,0,len));
}

in.close();
return sb.toString();
}
  測試:
  
@Test
public void test() throws IOException {

String result1 = getToken();
Map token = (Map) JSON.parseObject(result1);
String result2 = getContentList(token.get("access_token").toString());
System.out.println(result2);
}
  
  轉換成json格式,參數說(shuō)明見(jiàn)上面API文檔
  
  
  第二張圖中的url為公眾號文章的地址。將有與獲得的 tem 項目數量一樣多的項目。只要得到以上結果,在小程序中打開(kāi)公眾號文章已經(jīng)成功過(guò)半。
  最后在小程序中使用組件打開(kāi),src為文章的url地址。
  
  本文介紹微信小程序獲取公眾號文章列表并展示文章文章的示例代碼,以及更多獲取公眾號的相關(guān)小程序文章列表內容請搜索腳本之家之前的文章或繼續瀏覽下方的相關(guān)文章。希望大家以后多多支持Script Home!

querylist采集微信公眾號文章( 搜狗搜索采集公眾號歷史消息(圖)問(wèn)題解析)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 153 次瀏覽 ? 2021-11-13 14:05 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(
搜狗搜索采集公眾號歷史消息(圖)問(wèn)題解析)
  PHP如何寫(xiě)微信公眾號文章頁(yè)面采集
  通過(guò)搜狗搜索采集公眾號的歷史新聞?dòng)袔讉€(gè)問(wèn)題:
  1、 有驗證碼;
  2、歷史留言列表只有最近10條群發(fā);
  3、文章 地址有有效期;
  4、據說(shuō)批量采集需要改ip;
  通過(guò)我之前的文章方法,沒(méi)有出現這樣的問(wèn)題,雖然采集的系統搭建不像傳統的采集器寫(xiě)規則爬行那么簡(jiǎn)單。但是batch采集構建一次后的效率還是可以的。而且,采集的文章地址是永久有效的,您可以通過(guò)采集獲取一個(gè)公眾號的所有歷史消息。
  先從公眾號文章的鏈接地址說(shuō)起:
  1、 復制微信右上角菜單中的鏈接地址:
  2、 歷史消息列表中獲取的地址:
  #wechat_redirect
  3、完整的真實(shí)地址:
  %3D%3D&amp;devicetype=iOS10.1.1&amp;version=16050120&amp;nettype=WIFI&amp;fontScale=100&amp;pass_ticket=FGRyGfXLPEa4AeOsIZu7KFJo6CiXOZex83Y5YBRglW4%header1D
  以上三個(gè)地址是同一篇文章文章的地址,在不同位置獲取時(shí)得到三個(gè)完全不同的結果。
  和歷史新聞頁(yè)面一樣,微信也有自動(dòng)添加參數的機制。第一個(gè)地址是通過(guò)復制鏈接獲得的,看起來(lái)像一個(gè)變相的代碼。其實(shí)沒(méi)用,我們不去想。第二個(gè)地址是通過(guò)前面文章中介紹的方法從json文章歷史消息列表中得到的鏈接地址,我們可以將這個(gè)地址保存到數據庫中。然后就可以通過(guò)這個(gè)地址從服務(wù)器獲取文章的內容。第三個(gè)鏈接添加參數后,目的是讓文章頁(yè)面中的閱讀js獲取閱讀和點(diǎn)贊的json結果。在我們之前的文章方法中,由于文章頁(yè)面是由客戶(hù)端打開(kāi)顯示的,因為這些參數,文章中的js
  本次文章的內容是根據本專(zhuān)欄前面文章介紹的方法獲取大量微信文章,詳細研究如何獲取文章的內容@文章 和其他一些有用的信息方法。
  
 ?。ㄎ恼?列表保存在我的數據庫中,一些字段)
  1、獲取文章的源碼:
  文章的源碼可以通過(guò)php函數file_get_content()讀入一個(gè)變量。由于微信文章的源碼可以從瀏覽器打開(kāi),這里就不貼了,以免浪費頁(yè)面空間。
  2、 源代碼中的有用信息:
  1) 原文內容:
  原創(chuàng )內容收錄在一個(gè)標簽中,通過(guò)php代碼獲?。?br /> <p> 查看全部

  querylist采集微信公眾號文章(
搜狗搜索采集公眾號歷史消息(圖)問(wèn)題解析)
  PHP如何寫(xiě)微信公眾號文章頁(yè)面采集
  通過(guò)搜狗搜索采集公眾號的歷史新聞?dòng)袔讉€(gè)問(wèn)題:
  1、 有驗證碼;
  2、歷史留言列表只有最近10條群發(fā);
  3、文章 地址有有效期;
  4、據說(shuō)批量采集需要改ip;
  通過(guò)我之前的文章方法,沒(méi)有出現這樣的問(wèn)題,雖然采集的系統搭建不像傳統的采集器寫(xiě)規則爬行那么簡(jiǎn)單。但是batch采集構建一次后的效率還是可以的。而且,采集的文章地址是永久有效的,您可以通過(guò)采集獲取一個(gè)公眾號的所有歷史消息。
  先從公眾號文章的鏈接地址說(shuō)起:
  1、 復制微信右上角菜單中的鏈接地址:
  2、 歷史消息列表中獲取的地址:
  #wechat_redirect
  3、完整的真實(shí)地址:
  %3D%3D&amp;devicetype=iOS10.1.1&amp;version=16050120&amp;nettype=WIFI&amp;fontScale=100&amp;pass_ticket=FGRyGfXLPEa4AeOsIZu7KFJo6CiXOZex83Y5YBRglW4%header1D
  以上三個(gè)地址是同一篇文章文章的地址,在不同位置獲取時(shí)得到三個(gè)完全不同的結果。
  和歷史新聞頁(yè)面一樣,微信也有自動(dòng)添加參數的機制。第一個(gè)地址是通過(guò)復制鏈接獲得的,看起來(lái)像一個(gè)變相的代碼。其實(shí)沒(méi)用,我們不去想。第二個(gè)地址是通過(guò)前面文章中介紹的方法從json文章歷史消息列表中得到的鏈接地址,我們可以將這個(gè)地址保存到數據庫中。然后就可以通過(guò)這個(gè)地址從服務(wù)器獲取文章的內容。第三個(gè)鏈接添加參數后,目的是讓文章頁(yè)面中的閱讀js獲取閱讀和點(diǎn)贊的json結果。在我們之前的文章方法中,由于文章頁(yè)面是由客戶(hù)端打開(kāi)顯示的,因為這些參數,文章中的js
  本次文章的內容是根據本專(zhuān)欄前面文章介紹的方法獲取大量微信文章,詳細研究如何獲取文章的內容@文章 和其他一些有用的信息方法。
  
 ?。ㄎ恼?列表保存在我的數據庫中,一些字段)
  1、獲取文章的源碼:
  文章的源碼可以通過(guò)php函數file_get_content()讀入一個(gè)變量。由于微信文章的源碼可以從瀏覽器打開(kāi),這里就不貼了,以免浪費頁(yè)面空間。
  2、 源代碼中的有用信息:
  1) 原文內容:
  原創(chuàng )內容收錄在一個(gè)標簽中,通過(guò)php代碼獲?。?br /> <p>

querylist采集微信公眾號文章(querylist采集微信公眾號文章的api接口開(kāi)放已經(jīng)有一段時(shí)間了)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 129 次瀏覽 ? 2021-11-13 09:08 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(querylist采集微信公眾號文章的api接口開(kāi)放已經(jīng)有一段時(shí)間了)
  querylist采集微信公眾號文章的api接口開(kāi)放已經(jīng)有一段時(shí)間了,由于上次在內測已經(jīng)有很多人用過(guò)api接口,但是還是有一些小伙伴對于該接口只是初步了解,沒(méi)有太大興趣,而我呢,就一直在關(guān)注,嘗試去開(kāi)發(fā),今天小伙伴剛好問(wèn)到,所以我就想跟大家分享下。這是ip接口的官方說(shuō)明,接口開(kāi)放時(shí)間是3月8號,至今已經(jīng)有3個(gè)多月,一共擁有9個(gè)g的內存,為什么說(shuō)他有9個(gè)g的內存呢,大家注意看下文圖片中的權重active權重就可以明白,這9個(gè)g不是隨便浪費的,分配到微信小程序及公眾號,每個(gè)應用里面,都會(huì )占用4gb的內存,(像今天這么大運行量的小程序,內存可能達到9g)下面是一些參數,大家也可以去微信公眾號里面看api文檔,非常的簡(jiǎn)單,關(guān)于這些如果大家有疑問(wèn)可以留言,我會(huì )盡力解答~這是地址。
  詳細描述是這樣的:
  用于微信小程序,公眾號,群發(fā),
  不能請參看我寫(xiě)的博客:「大神仙叔」的博客
  算是api吧
  額除了官方文檔里的接口接下來(lái)就不知道該怎么去取了。
  你用什么軟件發(fā)布的呢?
  大神回答.應該是不可以的
  -cn
  大神回答這個(gè)問(wèn)題,回答的更詳細一些,目前微信公眾號文章的api接口只開(kāi)放出來(lái)了9個(gè),你需要自己去去找,api開(kāi)放的較少,可以從其他渠道看看有哪些,比如一些其他的公眾號,不多說(shuō)了, 查看全部

  querylist采集微信公眾號文章(querylist采集微信公眾號文章的api接口開(kāi)放已經(jīng)有一段時(shí)間了)
  querylist采集微信公眾號文章的api接口開(kāi)放已經(jīng)有一段時(shí)間了,由于上次在內測已經(jīng)有很多人用過(guò)api接口,但是還是有一些小伙伴對于該接口只是初步了解,沒(méi)有太大興趣,而我呢,就一直在關(guān)注,嘗試去開(kāi)發(fā),今天小伙伴剛好問(wèn)到,所以我就想跟大家分享下。這是ip接口的官方說(shuō)明,接口開(kāi)放時(shí)間是3月8號,至今已經(jīng)有3個(gè)多月,一共擁有9個(gè)g的內存,為什么說(shuō)他有9個(gè)g的內存呢,大家注意看下文圖片中的權重active權重就可以明白,這9個(gè)g不是隨便浪費的,分配到微信小程序及公眾號,每個(gè)應用里面,都會(huì )占用4gb的內存,(像今天這么大運行量的小程序,內存可能達到9g)下面是一些參數,大家也可以去微信公眾號里面看api文檔,非常的簡(jiǎn)單,關(guān)于這些如果大家有疑問(wèn)可以留言,我會(huì )盡力解答~這是地址。
  詳細描述是這樣的:
  用于微信小程序,公眾號,群發(fā),
  不能請參看我寫(xiě)的博客:「大神仙叔」的博客
  算是api吧
  額除了官方文檔里的接口接下來(lái)就不知道該怎么去取了。
  你用什么軟件發(fā)布的呢?
  大神回答.應該是不可以的
  -cn
  大神回答這個(gè)問(wèn)題,回答的更詳細一些,目前微信公眾號文章的api接口只開(kāi)放出來(lái)了9個(gè),你需要自己去去找,api開(kāi)放的較少,可以從其他渠道看看有哪些,比如一些其他的公眾號,不多說(shuō)了,

querylist采集微信公眾號文章( React和ant-design增加了方便查看的小程序指南 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 148 次瀏覽 ? 2021-11-12 10:13 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(
React和ant-design增加了方便查看的小程序指南
)
  <p>小程序?GitHub Trending Hub?是一個(gè)以 Feed 流形式查看 GitHub Trending 倉庫集合的工具,通過(guò)它可以及時(shí)查看最近更新的熱門(mén)倉庫。通過(guò)微信 WeChat 掃碼體驗。
  
為什么要開(kāi)發(fā)?
  相信很多人會(huì )有這樣的疑問(wèn),通過(guò)官方提供的 GitHub Trending 頁(yè)面就能查看,為什么還要開(kāi)發(fā)一個(gè)小程序?細心的同學(xué)可能會(huì )發(fā)現 GitHub Trending 上榜大致是按照當天新增的 Star 數來(lái)確定的,Star 數會(huì )隨著(zhù)時(shí)間變動(dòng),意味著(zhù) Trending 榜單也是隨時(shí)在變的。那么對于像我一樣經(jīng)常瀏覽 GitHub Trending 頁(yè)面的人會(huì )存在一些不便的地方:

  每次訪(fǎng)問(wèn) GitHub Trending 獲取的新倉庫數量相對少,那些比較熱門(mén)的項目往往長(cháng)期霸占 Trending 榜單,有時(shí)候今天看了,需要過(guò)幾天再去看才能在上面發(fā)現一些新的有意思的項目
  對于那些短期出現在 Trending 上的項目由于沒(méi)有及時(shí)查看而丟失了
  不能按多語(yǔ)言過(guò)濾,關(guān)注多個(gè)編程語(yǔ)言的人還是比較多的
  這大概就是最開(kāi)始的需求,希望能夠及時(shí)的追蹤到 GitHub Trending 榜單的變化,形成歷史信息方便查看更新。很自然就會(huì )想到用爬蟲(chóng)解決這個(gè)問(wèn)題,當時(shí)還沒(méi)有小程序,開(kāi)發(fā)小程序是因為工作關(guān)系了解到 Serverless 相關(guān)的知識,同時(shí)微信小程序有對應的云開(kāi)發(fā)方式,迫切希望了解一下具體的應用場(chǎng)景。所以就有了開(kāi)發(fā)這個(gè)小程序的想法。
追蹤網(wǎng)站變化
  除了經(jīng)常瀏覽 GitHub Trending 之外,有時(shí)候也會(huì )看一些技術(shù)博客,比如 GitHub Blog、Kubernetes Blog、CoreOS Blog 等,有的是不提供 RSS 訂閱的(當然我也不是一個(gè) RSS 訂閱的愛(ài)好者),由于不知道什么時(shí)候會(huì )更新,只能空閑時(shí)去查看對應的頁(yè)面比較低效。通過(guò)爬蟲(chóng)可以很好的解決這個(gè)問(wèn)題,但是對于多個(gè)網(wǎng)站都單獨寫(xiě)爬蟲(chóng)比較費勁同時(shí)增加了管理的負擔,所以希望能夠開(kāi)發(fā)一個(gè)通用的爬蟲(chóng)框架,能夠比較簡(jiǎn)單的配置就能新增一個(gè)追蹤網(wǎng)站變化的爬蟲(chóng)。當時(shí)剛好工作上在了解 Prometheus 和 Alermanager,就參考對應的配置,開(kāi)發(fā)了基于 xpath 的爬蟲(chóng)框架,通過(guò)郵件以日報或者周報形式追蹤特定網(wǎng)站的更新。
parsers:
- name: &#39;githubtrending&#39;
base_url: &#39;https://github.com&#39;
base_xpath:
- "//li[@class=&#39;col-12 d-block width-full py-4 border-bottom&#39;]"
attr:
url: &#39;div/h3/a/@href&#39;
repo: &#39;div/h3/a&#39;
desc: "div[@class=&#39;py-1&#39;]/p"
lang: "div/span[@itemprop=&#39;programmingLanguage&#39;]"
star: "div/a[@aria-label=&#39;Stargazers&#39;]"
fork: "div/a[@aria-label=&#39;Forks&#39;]"
today: "div/span[@class=&#39;float-right&#39;]"
</p>
  在后續的工作中,需要參與一些前端的開(kāi)發(fā),所以學(xué)習了React和ant-design,并添加了易于查看的頁(yè)面??梢哉f(shuō),這個(gè)項目和當時(shí)的工作內容是高度契合、相輔相成的。
  
  您可以訪(fǎng)問(wèn)以下體驗:
  項目地址:
  歡迎來(lái)到星叉。如果您有任何問(wèn)題,請提交問(wèn)題。
  微信小程序
  小程序最直觀(guān)的體驗是無(wú)需安裝軟件,在微信中即可快速體驗。當時(shí)trackupdates服務(wù)沒(méi)有服務(wù)器,運行在我自己的電腦上。碎片時(shí)間用手機看很不方便,所以還是滿(mǎn)足自己的需求(程序員是不是先造輪子來(lái)滿(mǎn)足自己的需求?哈哈~)。
  隨著(zhù)產(chǎn)品思維在我工作中的積累,當時(shí)的想法是,既然我要開(kāi)發(fā)一個(gè)對外可用的產(chǎn)品,為什么不滿(mǎn)足自己的需求,同時(shí)也方便別人呢?因此,有必要挖掘和分析需要解決的具體問(wèn)題和痛點(diǎn),以及如何更好地推廣這款產(chǎn)品。
  當時(shí)發(fā)現微信公眾號中的文章對外部鏈接的訪(fǎng)問(wèn)有嚴格的控制。在文章中,所有鏈接都無(wú)法點(diǎn)擊,但小程序的重定向沒(méi)有限制。在小程序中也是如此。一般不允許外鏈跳轉(個(gè)人開(kāi)發(fā)類(lèi)小程序)。同時(shí),我也對已經(jīng)上線(xiàn)的GitHub相關(guān)小程序進(jìn)行了調查。無(wú)一例外,鏈接跳轉都是允許的。有很多問(wèn)題。因此,在小程序的開(kāi)發(fā)過(guò)程中,友好的GitHub鏈接重定向是最重要的關(guān)注和優(yōu)化問(wèn)題,這也是這個(gè)小程序如何推廣的方向。
  目前有GitHub精選和AI研究院兩個(gè)公眾號,可以通過(guò)在文章中附上小程序鏈接,提升訪(fǎng)問(wèn)GitHub倉庫詳情的閱讀體驗。如果您在公眾號文章中分享了GitHub相關(guān)項目,可以?huà)呙枰韵露S碼查看添加小程序指南。
  
  此外,小程序還提供了查看倉庫統計和個(gè)人簡(jiǎn)歷的功能。
  
  
  
  小程序使用微信原生框架開(kāi)發(fā)。如果你想學(xué)習小程序開(kāi)發(fā),應該對你有幫助。
  項目地址:
  歡迎來(lái)到星叉。如果您有任何問(wèn)題,請提交問(wèn)題。
  總結
  這就是GitHub Trending Hub這個(gè)小程序的由來(lái)。在整個(gè)開(kāi)發(fā)過(guò)程中,我覺(jué)得有兩點(diǎn)需要分享:
  GitHub API 設計
  為降低開(kāi)發(fā)成本,提高后續API替換的便利性,GitHub API的返回結果中會(huì )收錄您可能訪(fǎng)問(wèn)的其他API,開(kāi)發(fā)者無(wú)需理解和拼接API。官方解釋如下:
  所有資源都可能有一個(gè)或多個(gè)*_urlproperties 鏈接到其他資源。這些旨在提供顯式 URL,以便適當的 API 客戶(hù)端不需要自己構建 URL。強烈建議 API 客戶(hù)端使用這些。這樣做將使開(kāi)發(fā)人員在未來(lái)升級 API 時(shí)更容易。所有 URL 都應該是正確的 RFC 6570URI 模板。
  
{
"id": 1296269,
"name": "Hello-World",
"full_name": "octocat/Hello-World",
"html_url": "https://github.com/octocat/Hello-World",
"description": "This your first repo!",
"url": "https://api.github.com/repos/o ... ot%3B,
"archive_url": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}",
"assignees_url": "http://api.github.com/repos/oc ... gnees{/user}"
}
  對我的整體啟發(fā)是,設計 API 是一門(mén)學(xué)問(wèn),讓開(kāi)發(fā)者更容易使用 API 也很重要?,F在GitHub已經(jīng)推薦使用GraphQL API v4版本,小程序API向GraphQL版本的遷移已經(jīng)收錄在接下來(lái)的學(xué)習計劃中。
  小程序云開(kāi)發(fā)
  云開(kāi)發(fā)中將常用的基礎組件打包,如數據庫、存儲、無(wú)服務(wù)框架、監控和數據統計報表等,大大簡(jiǎn)化了服務(wù)的運維部署成本。您無(wú)需關(guān)心服務(wù)在何處運行或是否需要擴展。讓開(kāi)發(fā)更加關(guān)注業(yè)務(wù)邏輯。下面是一個(gè)簡(jiǎn)單的服務(wù):
  const cloud = require(&#39;wx-server-sdk&#39;)
exports.main = async (event, context) => ({
sum: event.a + event.b
})
  但相對來(lái)說(shuō),成熟度還不夠。如果遇到問(wèn)題,查找起來(lái)會(huì )比較困難。比如遇到小程序被爬蟲(chóng)爬取的API(后來(lái)發(fā)現是微信自己的爬蟲(chóng),尷尬~),導致云開(kāi)發(fā)包流量瞬間用光,不好由于云開(kāi)發(fā)暴露的能力有限 排查并解決此問(wèn)題。
  最后貼個(gè)二維碼,歡迎掃碼體驗
   查看全部

  querylist采集微信公眾號文章(
React和ant-design增加了方便查看的小程序指南
)
  <p>小程序?GitHub Trending Hub?是一個(gè)以 Feed 流形式查看 GitHub Trending 倉庫集合的工具,通過(guò)它可以及時(shí)查看最近更新的熱門(mén)倉庫。通過(guò)微信 WeChat 掃碼體驗。
  
為什么要開(kāi)發(fā)?
  相信很多人會(huì )有這樣的疑問(wèn),通過(guò)官方提供的 GitHub Trending 頁(yè)面就能查看,為什么還要開(kāi)發(fā)一個(gè)小程序?細心的同學(xué)可能會(huì )發(fā)現 GitHub Trending 上榜大致是按照當天新增的 Star 數來(lái)確定的,Star 數會(huì )隨著(zhù)時(shí)間變動(dòng),意味著(zhù) Trending 榜單也是隨時(shí)在變的。那么對于像我一樣經(jīng)常瀏覽 GitHub Trending 頁(yè)面的人會(huì )存在一些不便的地方:

  每次訪(fǎng)問(wèn) GitHub Trending 獲取的新倉庫數量相對少,那些比較熱門(mén)的項目往往長(cháng)期霸占 Trending 榜單,有時(shí)候今天看了,需要過(guò)幾天再去看才能在上面發(fā)現一些新的有意思的項目
  對于那些短期出現在 Trending 上的項目由于沒(méi)有及時(shí)查看而丟失了
  不能按多語(yǔ)言過(guò)濾,關(guān)注多個(gè)編程語(yǔ)言的人還是比較多的
  這大概就是最開(kāi)始的需求,希望能夠及時(shí)的追蹤到 GitHub Trending 榜單的變化,形成歷史信息方便查看更新。很自然就會(huì )想到用爬蟲(chóng)解決這個(gè)問(wèn)題,當時(shí)還沒(méi)有小程序,開(kāi)發(fā)小程序是因為工作關(guān)系了解到 Serverless 相關(guān)的知識,同時(shí)微信小程序有對應的云開(kāi)發(fā)方式,迫切希望了解一下具體的應用場(chǎng)景。所以就有了開(kāi)發(fā)這個(gè)小程序的想法。
追蹤網(wǎng)站變化
  除了經(jīng)常瀏覽 GitHub Trending 之外,有時(shí)候也會(huì )看一些技術(shù)博客,比如 GitHub Blog、Kubernetes Blog、CoreOS Blog 等,有的是不提供 RSS 訂閱的(當然我也不是一個(gè) RSS 訂閱的愛(ài)好者),由于不知道什么時(shí)候會(huì )更新,只能空閑時(shí)去查看對應的頁(yè)面比較低效。通過(guò)爬蟲(chóng)可以很好的解決這個(gè)問(wèn)題,但是對于多個(gè)網(wǎng)站都單獨寫(xiě)爬蟲(chóng)比較費勁同時(shí)增加了管理的負擔,所以希望能夠開(kāi)發(fā)一個(gè)通用的爬蟲(chóng)框架,能夠比較簡(jiǎn)單的配置就能新增一個(gè)追蹤網(wǎng)站變化的爬蟲(chóng)。當時(shí)剛好工作上在了解 Prometheus 和 Alermanager,就參考對應的配置,開(kāi)發(fā)了基于 xpath 的爬蟲(chóng)框架,通過(guò)郵件以日報或者周報形式追蹤特定網(wǎng)站的更新。
parsers:
- name: &#39;githubtrending&#39;
base_url: &#39;https://github.com&#39;
base_xpath:
- "//li[@class=&#39;col-12 d-block width-full py-4 border-bottom&#39;]"
attr:
url: &#39;div/h3/a/@href&#39;
repo: &#39;div/h3/a&#39;
desc: "div[@class=&#39;py-1&#39;]/p"
lang: "div/span[@itemprop=&#39;programmingLanguage&#39;]"
star: "div/a[@aria-label=&#39;Stargazers&#39;]"
fork: "div/a[@aria-label=&#39;Forks&#39;]"
today: "div/span[@class=&#39;float-right&#39;]"
</p>
  在后續的工作中,需要參與一些前端的開(kāi)發(fā),所以學(xué)習了React和ant-design,并添加了易于查看的頁(yè)面??梢哉f(shuō),這個(gè)項目和當時(shí)的工作內容是高度契合、相輔相成的。
  
  您可以訪(fǎng)問(wèn)以下體驗:
  項目地址:
  歡迎來(lái)到星叉。如果您有任何問(wèn)題,請提交問(wèn)題。
  微信小程序
  小程序最直觀(guān)的體驗是無(wú)需安裝軟件,在微信中即可快速體驗。當時(shí)trackupdates服務(wù)沒(méi)有服務(wù)器,運行在我自己的電腦上。碎片時(shí)間用手機看很不方便,所以還是滿(mǎn)足自己的需求(程序員是不是先造輪子來(lái)滿(mǎn)足自己的需求?哈哈~)。
  隨著(zhù)產(chǎn)品思維在我工作中的積累,當時(shí)的想法是,既然我要開(kāi)發(fā)一個(gè)對外可用的產(chǎn)品,為什么不滿(mǎn)足自己的需求,同時(shí)也方便別人呢?因此,有必要挖掘和分析需要解決的具體問(wèn)題和痛點(diǎn),以及如何更好地推廣這款產(chǎn)品。
  當時(shí)發(fā)現微信公眾號中的文章對外部鏈接的訪(fǎng)問(wèn)有嚴格的控制。在文章中,所有鏈接都無(wú)法點(diǎn)擊,但小程序的重定向沒(méi)有限制。在小程序中也是如此。一般不允許外鏈跳轉(個(gè)人開(kāi)發(fā)類(lèi)小程序)。同時(shí),我也對已經(jīng)上線(xiàn)的GitHub相關(guān)小程序進(jìn)行了調查。無(wú)一例外,鏈接跳轉都是允許的。有很多問(wèn)題。因此,在小程序的開(kāi)發(fā)過(guò)程中,友好的GitHub鏈接重定向是最重要的關(guān)注和優(yōu)化問(wèn)題,這也是這個(gè)小程序如何推廣的方向。
  目前有GitHub精選和AI研究院兩個(gè)公眾號,可以通過(guò)在文章中附上小程序鏈接,提升訪(fǎng)問(wèn)GitHub倉庫詳情的閱讀體驗。如果您在公眾號文章中分享了GitHub相關(guān)項目,可以?huà)呙枰韵露S碼查看添加小程序指南。
  
  此外,小程序還提供了查看倉庫統計和個(gè)人簡(jiǎn)歷的功能。
  
  
  
  小程序使用微信原生框架開(kāi)發(fā)。如果你想學(xué)習小程序開(kāi)發(fā),應該對你有幫助。
  項目地址:
  歡迎來(lái)到星叉。如果您有任何問(wèn)題,請提交問(wèn)題。
  總結
  這就是GitHub Trending Hub這個(gè)小程序的由來(lái)。在整個(gè)開(kāi)發(fā)過(guò)程中,我覺(jué)得有兩點(diǎn)需要分享:
  GitHub API 設計
  為降低開(kāi)發(fā)成本,提高后續API替換的便利性,GitHub API的返回結果中會(huì )收錄您可能訪(fǎng)問(wèn)的其他API,開(kāi)發(fā)者無(wú)需理解和拼接API。官方解釋如下:
  所有資源都可能有一個(gè)或多個(gè)*_urlproperties 鏈接到其他資源。這些旨在提供顯式 URL,以便適當的 API 客戶(hù)端不需要自己構建 URL。強烈建議 API 客戶(hù)端使用這些。這樣做將使開(kāi)發(fā)人員在未來(lái)升級 API 時(shí)更容易。所有 URL 都應該是正確的 RFC 6570URI 模板。
  
{
"id": 1296269,
"name": "Hello-World",
"full_name": "octocat/Hello-World",
"html_url": "https://github.com/octocat/Hello-World",
"description": "This your first repo!",
"url": "https://api.github.com/repos/o ... ot%3B,
"archive_url": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}",
"assignees_url": "http://api.github.com/repos/oc ... gnees{/user}"
}
  對我的整體啟發(fā)是,設計 API 是一門(mén)學(xué)問(wèn),讓開(kāi)發(fā)者更容易使用 API 也很重要?,F在GitHub已經(jīng)推薦使用GraphQL API v4版本,小程序API向GraphQL版本的遷移已經(jīng)收錄在接下來(lái)的學(xué)習計劃中。
  小程序云開(kāi)發(fā)
  云開(kāi)發(fā)中將常用的基礎組件打包,如數據庫、存儲、無(wú)服務(wù)框架、監控和數據統計報表等,大大簡(jiǎn)化了服務(wù)的運維部署成本。您無(wú)需關(guān)心服務(wù)在何處運行或是否需要擴展。讓開(kāi)發(fā)更加關(guān)注業(yè)務(wù)邏輯。下面是一個(gè)簡(jiǎn)單的服務(wù):
  const cloud = require(&#39;wx-server-sdk&#39;)
exports.main = async (event, context) => ({
sum: event.a + event.b
})
  但相對來(lái)說(shuō),成熟度還不夠。如果遇到問(wèn)題,查找起來(lái)會(huì )比較困難。比如遇到小程序被爬蟲(chóng)爬取的API(后來(lái)發(fā)現是微信自己的爬蟲(chóng),尷尬~),導致云開(kāi)發(fā)包流量瞬間用光,不好由于云開(kāi)發(fā)暴露的能力有限 排查并解決此問(wèn)題。
  最后貼個(gè)二維碼,歡迎掃碼體驗
  

querylist采集微信公眾號文章(Python模擬安卓App操作微信App的方法(詳見(jiàn)代碼介紹))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 199 次瀏覽 ? 2021-11-11 15:04 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(Python模擬安卓App操作微信App的方法(詳見(jiàn)代碼介紹))
  本文文章主要介紹了基于Python采集的微信公眾號歷史數據爬取。文章中介紹的示例代碼非常詳細,對大家的學(xué)習或工作有一定的參考學(xué)習價(jià)值。有需要的朋友可以參考
  鯤志鵬的技術(shù)人員將在本文中介紹一種采集通過(guò)模擬微信App的操作來(lái)指定公眾號所有歷史數據的方法。
  通過(guò)我們的抓包分析,我們發(fā)現微信公眾號的歷史數據是通過(guò)HTTP協(xié)議加載的。對應的API接口如下圖所示,其中有四個(gè)關(guān)鍵參數(__biz、appmsg_token、pass_ticket、Cookie)。
  
  為了能夠得到這四個(gè)參數,我們需要模擬App的運行,讓它生成這些參數,然后我們就可以抓包了。對于模擬App操作,我們介紹了通過(guò)Python模擬Android App的方法(詳見(jiàn)詳情)。對于 HTTP 集成捕獲,我們之前已經(jīng)引入了 Mitmproxy(查看詳情)。
  我們需要模擬微信的操作來(lái)完成以下步驟:
  1. 推出微信應用
  2. 點(diǎn)擊“聯(lián)系人”
  3. 點(diǎn)擊“公眾號”
  4.點(diǎn)擊公眾號進(jìn)入采集
  5. 點(diǎn)擊右上角的用戶(hù)頭像圖標
  6. 點(diǎn)擊“所有消息”
  
  
  此時(shí),我們可以從響應數據中捕捉到__biz、appmsg_token、pass_ticket這三個(gè)關(guān)鍵參數,以及請求頭中的Cookie值。如下所示。
  
  
  有了以上四個(gè)參數,我們就可以構造一個(gè)API請求來(lái)獲取歷史文章列表,通過(guò)調用API接口直接獲取數據(無(wú)需模擬App操作)。核心參數如下。通過(guò)改變偏移參數,可以得到所有的歷史數據。
   # Cookie headers = {'Cookie': 'rewardsn=; wxtokenkey=777; wxuin=584068438; devicetype=android-19; version=26060736; lang=zh_CN; pass_ticket=Rr8cO5c2******3tKGqe7aVZzV9TupvrK+1uHHmHYQGL2WFdKIE; wap_sid2=COKhxu4KElxckFZQ3QzTHU4WThEUk0zcWdrZjhGcUdYdEVSV3Y1X2NPWHNUakRrd1ZzMnpLTERpdE5rbmxjSTg******dlRBcUNRazZpOGxTZUVEQUTgNQJVO'} url = 'https://mp.weixin.qq.com/mp/profile_ext?' data = {} data['is_ok'] = '1' data['count'] = '10' data['wxtoken'] = '' data['f'] = 'json' data['scene'] = '124' data['uin'] = '777' data['key'] = '777' data['offset'] = '0' data['action'] = 'getmsg' data['x5'] = '0' # 下面三個(gè)參數需要替換 # https://mp.weixin.qq.com/mp/pr ... Dhome應答數據里會(huì )暴漏這三個(gè)參數 data['__biz'] = 'MjM5MzQyOTM1OQ==' data['appmsg_token'] = '993_V8%2BEmfVD7g%2FvMZ****4DNUJNFkg~~' data['pass_ticket'] = 'Rr8cO5c23ZngeQHRGy8E7gv*****pvrK+1uHHmHYQGL2WFdKIE' url = url + urllib.urlencode(data)
  以“數字工廠(chǎng)”微信公眾號為例,采集的過(guò)程截圖如下:
  
  輸出結果截圖如下:
  
  以上就是基于Python采集爬取微信公眾號歷史數據的詳細內容。更多詳情請關(guān)注其他相關(guān)html中文網(wǎng)站文章! 查看全部

  querylist采集微信公眾號文章(Python模擬安卓App操作微信App的方法(詳見(jiàn)代碼介紹))
  本文文章主要介紹了基于Python采集的微信公眾號歷史數據爬取。文章中介紹的示例代碼非常詳細,對大家的學(xué)習或工作有一定的參考學(xué)習價(jià)值。有需要的朋友可以參考
  鯤志鵬的技術(shù)人員將在本文中介紹一種采集通過(guò)模擬微信App的操作來(lái)指定公眾號所有歷史數據的方法。
  通過(guò)我們的抓包分析,我們發(fā)現微信公眾號的歷史數據是通過(guò)HTTP協(xié)議加載的。對應的API接口如下圖所示,其中有四個(gè)關(guān)鍵參數(__biz、appmsg_token、pass_ticket、Cookie)。
  
  為了能夠得到這四個(gè)參數,我們需要模擬App的運行,讓它生成這些參數,然后我們就可以抓包了。對于模擬App操作,我們介紹了通過(guò)Python模擬Android App的方法(詳見(jiàn)詳情)。對于 HTTP 集成捕獲,我們之前已經(jīng)引入了 Mitmproxy(查看詳情)。
  我們需要模擬微信的操作來(lái)完成以下步驟:
  1. 推出微信應用
  2. 點(diǎn)擊“聯(lián)系人”
  3. 點(diǎn)擊“公眾號”
  4.點(diǎn)擊公眾號進(jìn)入采集
  5. 點(diǎn)擊右上角的用戶(hù)頭像圖標
  6. 點(diǎn)擊“所有消息”
  
  
  此時(shí),我們可以從響應數據中捕捉到__biz、appmsg_token、pass_ticket這三個(gè)關(guān)鍵參數,以及請求頭中的Cookie值。如下所示。
  
  
  有了以上四個(gè)參數,我們就可以構造一個(gè)API請求來(lái)獲取歷史文章列表,通過(guò)調用API接口直接獲取數據(無(wú)需模擬App操作)。核心參數如下。通過(guò)改變偏移參數,可以得到所有的歷史數據。
   # Cookie headers = {'Cookie': 'rewardsn=; wxtokenkey=777; wxuin=584068438; devicetype=android-19; version=26060736; lang=zh_CN; pass_ticket=Rr8cO5c2******3tKGqe7aVZzV9TupvrK+1uHHmHYQGL2WFdKIE; wap_sid2=COKhxu4KElxckFZQ3QzTHU4WThEUk0zcWdrZjhGcUdYdEVSV3Y1X2NPWHNUakRrd1ZzMnpLTERpdE5rbmxjSTg******dlRBcUNRazZpOGxTZUVEQUTgNQJVO'} url = 'https://mp.weixin.qq.com/mp/profile_ext?' data = {} data['is_ok'] = '1' data['count'] = '10' data['wxtoken'] = '' data['f'] = 'json' data['scene'] = '124' data['uin'] = '777' data['key'] = '777' data['offset'] = '0' data['action'] = 'getmsg' data['x5'] = '0' # 下面三個(gè)參數需要替換 # https://mp.weixin.qq.com/mp/pr ... Dhome應答數據里會(huì )暴漏這三個(gè)參數 data['__biz'] = 'MjM5MzQyOTM1OQ==' data['appmsg_token'] = '993_V8%2BEmfVD7g%2FvMZ****4DNUJNFkg~~' data['pass_ticket'] = 'Rr8cO5c23ZngeQHRGy8E7gv*****pvrK+1uHHmHYQGL2WFdKIE' url = url + urllib.urlencode(data)
  以“數字工廠(chǎng)”微信公眾號為例,采集的過(guò)程截圖如下:
  
  輸出結果截圖如下:
  
  以上就是基于Python采集爬取微信公眾號歷史數據的詳細內容。更多詳情請關(guān)注其他相關(guān)html中文網(wǎng)站文章!

querylist采集微信公眾號文章(微信公眾號后臺編輯素材界面的程序利用程序 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 130 次瀏覽 ? 2021-11-11 11:07 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信公眾號后臺編輯素材界面的程序利用程序
)
  準備階段
  為了實(shí)現爬蟲(chóng)我們需要使用以下工具
  另外,這個(gè)爬蟲(chóng)程序使用了微信公眾號后臺編輯素材接口。原理是當我們插入超鏈接時(shí),微信會(huì )調用一個(gè)特殊的API(見(jiàn)下圖)來(lái)獲取指定公眾號的文章列表。因此,我們還需要有一個(gè)公眾號。
  
  圖。1
  正式開(kāi)始
  我們需要登錄微信公眾號,點(diǎn)擊素材管理,點(diǎn)擊新建圖文消息,然后點(diǎn)擊上面的超鏈接。
  
  圖2
  接下來(lái),按 F12 打開(kāi) Chrome 的開(kāi)發(fā)者工具并選擇網(wǎng)絡(luò )
  
  圖3
  此時(shí),在之前的超鏈接界面,點(diǎn)擊“選擇其他公眾號”,輸入你需要爬取的公眾號(例如中國移動(dòng))
  
  圖4
  這時(shí)候之前的Network會(huì )刷新一些鏈接,其中以“appmsg”開(kāi)頭的內容就是我們需要分析的
  
  圖5
  我們解析請求的 URL
  https://mp.weixin.qq.com/cgi-b ... x%3D1
  它分為三個(gè)部分
  通過(guò)不斷瀏覽下一頁(yè),我們發(fā)現每次只有begin會(huì )改變,每次增加5,這就是count的值。
  接下來(lái)我們使用Python獲取同樣的資源,但是直接運行下面的代碼是無(wú)法獲取資源的
  import requests
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B
requests.get(url).json()
# {'base_resp': {'ret': 200003, 'err_msg': 'invalid session'}}
  之所以能在瀏覽器上獲取資源,是因為我們登錄了微信公眾號后端。而Python沒(méi)有我們的登錄信息,所以請求無(wú)效。我們需要在requests中設置headers參數,傳入Cookie和User-Agent來(lái)模擬登錄
  由于頭信息的內容每次都會(huì )變化,我把這些內容放在一個(gè)單獨的文件中,即“wechat.yaml”,信息如下
  cookie: ua_id=wuzWM9FKE14...
user_agent: Mozilla/5.0...
  只需要事后閱讀
  # 讀取cookie和user_agent
import yaml
with open("wechat.yaml", "r") as file:
file_data = file.read()
config = yaml.safe_load(file_data)
headers = {
"Cookie": config['cookie'],
"User-Agent": config['user_agent']
}
requests.get(url, headers=headers, verify=False).json()
  在返回的JSON中,我們可以看到每個(gè)文章的標題(title)、摘要(digest)、鏈接(link)、推送時(shí)間(update_time)和封面地址(cover)。
  appmsgid 是每條推文的唯一標識符,aid 是每條推文的唯一標識符。
  
  圖6
  其實(shí)除了cookies,URL中的token參數也會(huì )用來(lái)限制爬蟲(chóng),所以上面代碼的輸出很可能是{'base_resp': {'ret': 200040,'err_msg':'無(wú)效的 csrf 令牌'} }
  然后我們寫(xiě)一個(gè)循環(huán),獲取文章的所有JSON并保存。
  import json
import requests
import time
import random
import yaml
with open("wechat.yaml", "r") as file:
file_data = file.read()
config = yaml.safe_load(file_data)
headers = {
"Cookie": config['cookie'],
"User-Agent": config['user_agent']
}
# 請求參數
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
begin = "0"
params = {
"action": "list_ex",
"begin": begin,
"count": "5",
"fakeid": config['fakeid'],
"type": "9",
"token": config['token'],
"lang": "zh_CN",
"f": "json",
"ajax": "1"
}
# 存放結果
app_msg_list = []
# 在不知道公眾號有多少文章的情況下,使用while語(yǔ)句
# 也方便重新運行時(shí)設置頁(yè)數
i = 0
while True:
begin = i * 5
params["begin"] = str(begin)
# 隨機暫停幾秒,避免過(guò)快的請求導致過(guò)快的被查到
time.sleep(random.randint(1,10))
resp = requests.get(url, headers=headers, params = params, verify=False)
# 微信流量控制, 退出
if resp.json()['base_resp']['ret'] == 200013:
print("frequencey control, stop at {}".format(str(begin)))
break

# 如果返回的內容中為空則結束
if len(resp.json()['app_msg_list']) == 0:
print("all ariticle parsed")
break

app_msg_list.append(resp.json())
# 翻頁(yè)
i += 1
  在上面的代碼中,我還在“wechat.yaml”文件中存儲了fakeid和token。這是因為fakeid是每個(gè)公眾號的唯一標識,token會(huì )經(jīng)常變化,信息可以通過(guò)解析URL獲取,也可以從開(kāi)發(fā)者工具查看
  
  圖7
  爬了一段時(shí)間后,會(huì )遇到以下問(wèn)題
  {'base_resp': {'err_msg': 'freq control', 'ret': 200013}}
  此時(shí),當你嘗試在公眾號后臺插入超鏈接時(shí),會(huì )遇到如下提示
  
  圖8
  這是公眾號的流量限制,一般需要30-60分鐘才能繼續。為了完美處理這個(gè)問(wèn)題,你可能需要申請多個(gè)公眾號,可能需要對抗微信公眾號登錄系統,也可能需要設置代理池。
  但是我不需要工業(yè)級的爬蟲(chóng),我只想爬取自己的公眾號信息,所以等了一個(gè)小時(shí),再次登錄公眾號,獲取cookie和token,運行。我不想用自己的興趣挑戰別人的工作。
  最后,將結果保存為 JSON 格式。
  # 保存結果為JSON
json_name = "mp_data_{}.json".format(str(begin))
with open(json_name, "w") as file:
file.write(json.dumps(app_msg_list, indent=2, ensure_ascii=False))
  或者提取文章標識符、標題、URL、發(fā)布時(shí)間四列,保存為CSV。
  info_list = []
for msg in app_msg_list:
if "app_msg_list" in msg:
for item in msg["app_msg_list"]:
info = '"{}","{}","{}","{}"'.format(str(item["aid"]), item['title'], item['link'], str(item['create_time']))
info_list.append(info)
# save as csv
with open("app_msg_list.csv", "w") as file:
file.writelines("\n".join(info_list)) 查看全部

  querylist采集微信公眾號文章(微信公眾號后臺編輯素材界面的程序利用程序
)
  準備階段
  為了實(shí)現爬蟲(chóng)我們需要使用以下工具
  另外,這個(gè)爬蟲(chóng)程序使用了微信公眾號后臺編輯素材接口。原理是當我們插入超鏈接時(shí),微信會(huì )調用一個(gè)特殊的API(見(jiàn)下圖)來(lái)獲取指定公眾號的文章列表。因此,我們還需要有一個(gè)公眾號。
  
  圖。1
  正式開(kāi)始
  我們需要登錄微信公眾號,點(diǎn)擊素材管理,點(diǎn)擊新建圖文消息,然后點(diǎn)擊上面的超鏈接。
  
  圖2
  接下來(lái),按 F12 打開(kāi) Chrome 的開(kāi)發(fā)者工具并選擇網(wǎng)絡(luò )
  
  圖3
  此時(shí),在之前的超鏈接界面,點(diǎn)擊“選擇其他公眾號”,輸入你需要爬取的公眾號(例如中國移動(dòng))
  
  圖4
  這時(shí)候之前的Network會(huì )刷新一些鏈接,其中以“appmsg”開(kāi)頭的內容就是我們需要分析的
  
  圖5
  我們解析請求的 URL
  https://mp.weixin.qq.com/cgi-b ... x%3D1
  它分為三個(gè)部分
  通過(guò)不斷瀏覽下一頁(yè),我們發(fā)現每次只有begin會(huì )改變,每次增加5,這就是count的值。
  接下來(lái)我們使用Python獲取同樣的資源,但是直接運行下面的代碼是無(wú)法獲取資源的
  import requests
url = "https://mp.weixin.qq.com/cgi-b ... ot%3B
requests.get(url).json()
# {'base_resp': {'ret': 200003, 'err_msg': 'invalid session'}}
  之所以能在瀏覽器上獲取資源,是因為我們登錄了微信公眾號后端。而Python沒(méi)有我們的登錄信息,所以請求無(wú)效。我們需要在requests中設置headers參數,傳入Cookie和User-Agent來(lái)模擬登錄
  由于頭信息的內容每次都會(huì )變化,我把這些內容放在一個(gè)單獨的文件中,即“wechat.yaml”,信息如下
  cookie: ua_id=wuzWM9FKE14...
user_agent: Mozilla/5.0...
  只需要事后閱讀
  # 讀取cookie和user_agent
import yaml
with open("wechat.yaml", "r") as file:
file_data = file.read()
config = yaml.safe_load(file_data)
headers = {
"Cookie": config['cookie'],
"User-Agent": config['user_agent']
}
requests.get(url, headers=headers, verify=False).json()
  在返回的JSON中,我們可以看到每個(gè)文章的標題(title)、摘要(digest)、鏈接(link)、推送時(shí)間(update_time)和封面地址(cover)。
  appmsgid 是每條推文的唯一標識符,aid 是每條推文的唯一標識符。
  
  圖6
  其實(shí)除了cookies,URL中的token參數也會(huì )用來(lái)限制爬蟲(chóng),所以上面代碼的輸出很可能是{'base_resp': {'ret': 200040,'err_msg':'無(wú)效的 csrf 令牌'} }
  然后我們寫(xiě)一個(gè)循環(huán),獲取文章的所有JSON并保存。
  import json
import requests
import time
import random
import yaml
with open("wechat.yaml", "r") as file:
file_data = file.read()
config = yaml.safe_load(file_data)
headers = {
"Cookie": config['cookie'],
"User-Agent": config['user_agent']
}
# 請求參數
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
begin = "0"
params = {
"action": "list_ex",
"begin": begin,
"count": "5",
"fakeid": config['fakeid'],
"type": "9",
"token": config['token'],
"lang": "zh_CN",
"f": "json",
"ajax": "1"
}
# 存放結果
app_msg_list = []
# 在不知道公眾號有多少文章的情況下,使用while語(yǔ)句
# 也方便重新運行時(shí)設置頁(yè)數
i = 0
while True:
begin = i * 5
params["begin"] = str(begin)
# 隨機暫停幾秒,避免過(guò)快的請求導致過(guò)快的被查到
time.sleep(random.randint(1,10))
resp = requests.get(url, headers=headers, params = params, verify=False)
# 微信流量控制, 退出
if resp.json()['base_resp']['ret'] == 200013:
print("frequencey control, stop at {}".format(str(begin)))
break

# 如果返回的內容中為空則結束
if len(resp.json()['app_msg_list']) == 0:
print("all ariticle parsed")
break

app_msg_list.append(resp.json())
# 翻頁(yè)
i += 1
  在上面的代碼中,我還在“wechat.yaml”文件中存儲了fakeid和token。這是因為fakeid是每個(gè)公眾號的唯一標識,token會(huì )經(jīng)常變化,信息可以通過(guò)解析URL獲取,也可以從開(kāi)發(fā)者工具查看
  
  圖7
  爬了一段時(shí)間后,會(huì )遇到以下問(wèn)題
  {'base_resp': {'err_msg': 'freq control', 'ret': 200013}}
  此時(shí),當你嘗試在公眾號后臺插入超鏈接時(shí),會(huì )遇到如下提示
  
  圖8
  這是公眾號的流量限制,一般需要30-60分鐘才能繼續。為了完美處理這個(gè)問(wèn)題,你可能需要申請多個(gè)公眾號,可能需要對抗微信公眾號登錄系統,也可能需要設置代理池。
  但是我不需要工業(yè)級的爬蟲(chóng),我只想爬取自己的公眾號信息,所以等了一個(gè)小時(shí),再次登錄公眾號,獲取cookie和token,運行。我不想用自己的興趣挑戰別人的工作。
  最后,將結果保存為 JSON 格式。
  # 保存結果為JSON
json_name = "mp_data_{}.json".format(str(begin))
with open(json_name, "w") as file:
file.write(json.dumps(app_msg_list, indent=2, ensure_ascii=False))
  或者提取文章標識符、標題、URL、發(fā)布時(shí)間四列,保存為CSV。
  info_list = []
for msg in app_msg_list:
if "app_msg_list" in msg:
for item in msg["app_msg_list"]:
info = '"{}","{}","{}","{}"'.format(str(item["aid"]), item['title'], item['link'], str(item['create_time']))
info_list.append(info)
# save as csv
with open("app_msg_list.csv", "w") as file:
file.writelines("\n".join(info_list))

querylist采集微信公眾號文章(采集微信公眾號文章如何批量采集其他微信歷史內容?)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 166 次瀏覽 ? 2021-11-09 10:02 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(采集微信公眾號文章如何批量采集其他微信歷史內容?)
  隨著(zhù)互聯(lián)網(wǎng)時(shí)代的到來(lái),很多人開(kāi)始使用智能手機,微信的使用也逐漸增多。這時(shí)候微信的一些功能會(huì )有助于實(shí)現營(yíng)銷(xiāo),比如微信公眾號,那么如何采集微信公眾號文章呢?下面說(shuō)一下圖圖數據。
  
  采集微信公眾號文章
  如何批量處理采集微信公眾號歷史內容
  首先,第一個(gè)是采集閱讀數和點(diǎn)贊數非常寶貴。因此,文章獲取采集的讀取計數的機制受到2秒的限制。2秒內你有一個(gè)采集微信數據,微信不會(huì )理你,但如果你快,他會(huì )給你303響應,并返回空數據給你。讓你采集什么都沒(méi)有,然后就是不用采集讀號獲取文章列表的速度。這個(gè)速度在前期沒(méi)有限制。當您獲得更多采集時(shí),您的微信ID將被限制。我們的軟件對相關(guān)的采集做了一個(gè)可設置的時(shí)間限制。所以盡量使用這些限制。畢竟微信還需要做很多事情,它必須受到保護。限制登錄是一方面,限制采集數據是一方面,采集數據等待2分鐘。如果仍然頻繁,則為5分鐘。不管多久,估計都不會(huì )再有了。你的微信最多只能明天登錄。
  如何使用微信公眾號文章使用小程序進(jìn)行流量分流?
  1、小程序有較大的搜索流量入口,方便用戶(hù)瀏覽。
  2.微信公眾號的文章會(huì )自動(dòng)生成下圖的小程序界面,文章會(huì )自動(dòng)采集自己的公眾號群發(fā)&lt; @文章、瀏覽、點(diǎn)贊、評論所有文章同步的公眾號自動(dòng)分類(lèi),可以更好的展示你過(guò)去發(fā)布的微信文章,方便統一展示.
  3、對于自媒體和流量主來(lái)說(shuō),經(jīng)常發(fā)布高質(zhì)量的文章更容易留住客戶(hù),又可以擴大廣告,再次賺錢(qián)。
  4.可以轉公眾號。
  
  采集微信公眾號文章
  如何采集其他微信公眾號文章到微信編輯
  一、獲取文章的鏈接
  電腦用戶(hù)可以直接全選并復制瀏覽器地址欄中的文章鏈接。
  手機用戶(hù)可以點(diǎn)擊右上角的菜單按鈕,選擇復制鏈接,將鏈接發(fā)送到電腦。
  二、點(diǎn)擊采集文章按鈕
  1.編輯菜單右上角的采集文章按鈕。
  2.右側功能按鈕底部的采集文章按鈕。
  三、粘貼文章鏈接并點(diǎn)擊采集
  采集 完成后可以編輯修改文章。
  通過(guò)以上拖圖數據的介紹,我們了解到了采集微信公眾號文章的相關(guān)內容。只有了解微信公眾號的功能和用途,才能更好的保證文章采集。
  持續關(guān)注更多資訊和知識點(diǎn),關(guān)注自媒體網(wǎng)吧爆文采集平臺、自媒體文章采集平臺、公眾號查詢(xún)、公眾號轉載他人的原創(chuàng )文章、公眾號歷史文章等知識點(diǎn)。 查看全部

  querylist采集微信公眾號文章(采集微信公眾號文章如何批量采集其他微信歷史內容?)
  隨著(zhù)互聯(lián)網(wǎng)時(shí)代的到來(lái),很多人開(kāi)始使用智能手機,微信的使用也逐漸增多。這時(shí)候微信的一些功能會(huì )有助于實(shí)現營(yíng)銷(xiāo),比如微信公眾號,那么如何采集微信公眾號文章呢?下面說(shuō)一下圖圖數據。
  
  采集微信公眾號文章
  如何批量處理采集微信公眾號歷史內容
  首先,第一個(gè)是采集閱讀數和點(diǎn)贊數非常寶貴。因此,文章獲取采集的讀取計數的機制受到2秒的限制。2秒內你有一個(gè)采集微信數據,微信不會(huì )理你,但如果你快,他會(huì )給你303響應,并返回空數據給你。讓你采集什么都沒(méi)有,然后就是不用采集讀號獲取文章列表的速度。這個(gè)速度在前期沒(méi)有限制。當您獲得更多采集時(shí),您的微信ID將被限制。我們的軟件對相關(guān)的采集做了一個(gè)可設置的時(shí)間限制。所以盡量使用這些限制。畢竟微信還需要做很多事情,它必須受到保護。限制登錄是一方面,限制采集數據是一方面,采集數據等待2分鐘。如果仍然頻繁,則為5分鐘。不管多久,估計都不會(huì )再有了。你的微信最多只能明天登錄。
  如何使用微信公眾號文章使用小程序進(jìn)行流量分流?
  1、小程序有較大的搜索流量入口,方便用戶(hù)瀏覽。
  2.微信公眾號的文章會(huì )自動(dòng)生成下圖的小程序界面,文章會(huì )自動(dòng)采集自己的公眾號群發(fā)&lt; @文章、瀏覽、點(diǎn)贊、評論所有文章同步的公眾號自動(dòng)分類(lèi),可以更好的展示你過(guò)去發(fā)布的微信文章,方便統一展示.
  3、對于自媒體和流量主來(lái)說(shuō),經(jīng)常發(fā)布高質(zhì)量的文章更容易留住客戶(hù),又可以擴大廣告,再次賺錢(qián)。
  4.可以轉公眾號。
  
  采集微信公眾號文章
  如何采集其他微信公眾號文章到微信編輯
  一、獲取文章的鏈接
  電腦用戶(hù)可以直接全選并復制瀏覽器地址欄中的文章鏈接。
  手機用戶(hù)可以點(diǎn)擊右上角的菜單按鈕,選擇復制鏈接,將鏈接發(fā)送到電腦。
  二、點(diǎn)擊采集文章按鈕
  1.編輯菜單右上角的采集文章按鈕。
  2.右側功能按鈕底部的采集文章按鈕。
  三、粘貼文章鏈接并點(diǎn)擊采集
  采集 完成后可以編輯修改文章。
  通過(guò)以上拖圖數據的介紹,我們了解到了采集微信公眾號文章的相關(guān)內容。只有了解微信公眾號的功能和用途,才能更好的保證文章采集。
  持續關(guān)注更多資訊和知識點(diǎn),關(guān)注自媒體網(wǎng)吧爆文采集平臺、自媒體文章采集平臺、公眾號查詢(xún)、公眾號轉載他人的原創(chuàng )文章、公眾號歷史文章等知識點(diǎn)。

querylist采集微信公眾號文章(谷歌瀏覽器微信公眾號申請門(mén)檻低,服務(wù)號需要營(yíng)業(yè)執照等)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 182 次瀏覽 ? 2021-11-02 06:05 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(谷歌瀏覽器微信公眾號申請門(mén)檻低,服務(wù)號需要營(yíng)業(yè)執照等)
  一、網(wǎng)上的方法:
  1.在訂閱賬號功能中使用查詢(xún)鏈接,(這個(gè)鏈接現在是嚴重的反亂碼措施,抓取幾十個(gè)頁(yè)面會(huì )屏蔽訂閱賬號,僅供參考)
  更多詳情,請訪(fǎng)問(wèn)此鏈接:/4652.html
  2.使用搜狗搜索微信搜索(此方法只能查看每個(gè)微信公眾號的前10條文章)
  詳情請訪(fǎng)問(wèn)此鏈接:/qiqiyingse/article/details/70050113
  3.先搶公眾號界面,進(jìn)入界面獲取所有文章連接
  二、環(huán)境配置及材料準備
  1.需要安裝python selenium模塊包,使用selenium中的webdriver驅動(dòng)瀏覽器獲取cookie,達到登錄的效果;
  2. 使用webdriver功能需要安裝瀏覽器對應的驅動(dòng)插件。我在這里測試的是 Google Chrome。
  3.微信公眾號申請(個(gè)人訂閱號申請門(mén)檻低,服務(wù)號需要營(yíng)業(yè)執照等)
  4、。微信公眾號文章界面地址可以在微信公眾號后臺新建圖文消息,可以通過(guò)超鏈接功能獲??;
  
  通過(guò)搜索關(guān)鍵字獲取所有相關(guān)公眾號信息,但我只取第一個(gè)進(jìn)行測試,其他感興趣的人也可以全部獲取
  
  5.獲取要爬取的公眾號的fakeid
  
  6.選擇要爬取的公眾號,獲取文章接口地址
  
  從 selenium 導入 webdriver
  導入時(shí)間
  導入json
  導入請求
  重新導入
  隨機導入
  user=""
  password="weikuan3344520"
  gzlist=['熊貓']
  #登錄微信公眾號,登錄后獲取cookie信息,保存在本地文本
  def weChat_login():
  #定義一個(gè)空字典來(lái)存儲cookies的內容
  post={}
  #使用網(wǎng)絡(luò )驅動(dòng)程序啟動(dòng)谷歌瀏覽器
  print("啟動(dòng)瀏覽器,打開(kāi)微信公眾號登錄界面")
  driver = webdriver.Chrome(executable_path='C:\chromedriver.exe')
  #打開(kāi)微信公眾號登錄頁(yè)面
  driver.get('/')
  #等待 5 秒
  time.sleep(5)
  print("輸入微信公眾號賬號和密碼...")
  #清除帳號框中的內容
  driver.find_element_by_xpath("./*//input[@name='account'][@type='text']").clear()
  #自動(dòng)填寫(xiě)登錄用戶(hù)名
  driver.find_element_by_xpath("./*//input[@name='account'][@type='text']").send_keys(user)
  #清空密碼框內容
  driver.find_element_by_xpath("./*//input[@name='password'][@type='password']").clear()
  #自動(dòng)填寫(xiě)登錄密碼
  driver.find_element_by_xpath("./*//input[@name='password'][@type='password']").send_keys(password)
  //這是重點(diǎn),最近改版后
  #自動(dòng)輸入密碼后,需要手動(dòng)點(diǎn)擊記住我
  print("請點(diǎn)擊登錄界面:記住您的賬號")
  time.sleep(10)
  #自動(dòng)點(diǎn)擊登錄按鈕登錄
  driver.find_element_by_xpath("./*//a[@class='btn_login']").click()
  #用手機掃描二維碼!
  print("請用手機掃描二維碼登錄公眾號")
  time.sleep(20)
  print("登錄成功")
  #重新加載公眾號登錄頁(yè)面,登錄后會(huì )顯示公眾號后臺首頁(yè),從返回的內容中獲取cookies信息
  driver.get('/')
  #獲取cookies
  cookie_items = driver.get_cookies()
  #獲取的cookies為列表形式,將cookies轉換為json形式存放在名為cookie的本地文本中
  對于 cookie_items 中的 cookie_item:
  post[cookie_item['name']] = cookie_item['value']
  cookie_str = json.dumps(post)
  with open('cookie.txt','w+', encoding='utf-8') as f:
  f.write(cookie_str)
  print("Cookies 信息已保存在本地")
  #Crawl 微信公眾號文章并存入本地文本
  def get_content(query):
  #query 是要抓取的公眾號名稱(chēng)
  #公眾號首頁(yè)
  url =''
  #設置標題
  標題 = {
  "主機":"",
  "用戶(hù)代理": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/5< @3.0"
  }
  #讀取上一步獲取的cookie
  with open('cookie.txt','r', encoding='utf-8') as f:
  cookie = f.read()
  cookies = json.loads(cookie)
  #登錄后微信公眾號首頁(yè)url改為:/cgi-bin/home?t=home/index&lang=zh_CN&token=1849751598,獲取token信息
  response = requests.get(url=url, cookies=cookies)
  token = re.findall(r'token=(\d+)', str(response.url))[0]
  #搜索微信公眾號接口地址
  search_url ='/cgi-bin/searchbiz?'
  #搜索微信公眾號接口需要傳入的參數,共有三個(gè)變量:微信公眾號token、隨機數random、搜索微信公眾號名稱(chēng)
  query_id = {
  'action':'search_biz',
  'token':令牌,
  'lang':'zh_CN',
  'f':'json',
  'ajax': '1',
  'random': random.random(),
  '查詢(xún)':查詢(xún),
  '開(kāi)始':'0',
  '計數':'5'
  }
  #打開(kāi)搜索微信公眾號接口地址,需要傳入cookies、params、headers等相關(guān)參數信息
  search_response = requests.get(search_url, cookies=cookies, headers=header, params=query_id)
  #取搜索結果第一個(gè)公眾號
  lists = search_response.json().get('list')[0]
  #獲取這個(gè)公眾號的fakeid,然后抓取公眾號文章需要這個(gè)字段
  fakeid = list.get('fakeid')
  #微信公眾號文章界面地址
  appmsg_url ='/cgi-bin/appmsg?'
  #Search文章 需要傳入幾個(gè)參數:登錄公眾號token、爬取文章公眾號fakeid、隨機數random
  query_id_data = {
  'token':令牌,
  'lang':'zh_CN',
  'f':'json',
  'ajax': '1',
  'random': random.random(),
  'action':'list_ex',
  'begin': '0',#不同的頁(yè)面,這個(gè)參數改變,改變規則是每頁(yè)加5
  '計數':'5',
  '查詢(xún)':'',
  'fakeid':fakeid,
  '類(lèi)型':'9'
  }
  #打開(kāi)搜索微信公眾號文章列表頁(yè)
  appmsg_response = requests.get(appmsg_url, cookies=cookies, headers=header, params=query_id_data)
  #獲取文章總數
  max_num = appmsg_response.json().get('app_msg_cnt')
  #每頁(yè)至少有5個(gè)條目,獲取文章頁(yè)總數,爬取時(shí)需要頁(yè)面爬取
  num = int(int(max_num) / 5)
  #起始頁(yè)begin參數,后續每頁(yè)加5
  開(kāi)始 = 0
  當 num + 1> 0 :
  query_id_data = {
  'token':令牌,
  'lang':'zh_CN',
  'f':'json',
  'ajax': '1',
  'random': random.random(),
  'action':'list_ex',
  'begin':'{}'.format(str(begin)),
  '計數':'5',
  '查詢(xún)':'',
  'fakeid':fakeid,
  '類(lèi)型':'9'
  }
  print('翻頁(yè):--------------',begin)
  #獲取每個(gè)頁(yè)面的標題和鏈接地址文章,并寫(xiě)入本地文本
  query_fakeid_response = requests.get(appmsg_url, cookies=cookies, headers=header, params=query_id_data)
  fakeid_list = query_fakeid_response.json().get('app_msg_list')
  對于 fakeid_list 中的項目:
  content_link=item.get('link')
  content_title=item.get('title')
  fileName=query+'.txt'
  with open(fileName,'a',encoding='utf-8') as fh:
  fh.write(content_title+":\n"+content_link+"\n")
  數量 -= 1
  begin = int(begin)
  開(kāi)始+=5
  time.sleep(2)
  如果 __name__=='__main__':
  試試:
  #登錄微信公眾號,登錄后獲取cookie信息,保存在本地文本
  weChat_login()
  #登錄后,爬取微信公眾號文章微信公眾號后臺提供的界面文章
  在 gzlist 中查詢(xún):
  #Crawl 微信公眾號文章并存入本地文本 查看全部

  querylist采集微信公眾號文章(谷歌瀏覽器微信公眾號申請門(mén)檻低,服務(wù)號需要營(yíng)業(yè)執照等)
  一、網(wǎng)上的方法:
  1.在訂閱賬號功能中使用查詢(xún)鏈接,(這個(gè)鏈接現在是嚴重的反亂碼措施,抓取幾十個(gè)頁(yè)面會(huì )屏蔽訂閱賬號,僅供參考)
  更多詳情,請訪(fǎng)問(wèn)此鏈接:/4652.html
  2.使用搜狗搜索微信搜索(此方法只能查看每個(gè)微信公眾號的前10條文章)
  詳情請訪(fǎng)問(wèn)此鏈接:/qiqiyingse/article/details/70050113
  3.先搶公眾號界面,進(jìn)入界面獲取所有文章連接
  二、環(huán)境配置及材料準備
  1.需要安裝python selenium模塊包,使用selenium中的webdriver驅動(dòng)瀏覽器獲取cookie,達到登錄的效果;
  2. 使用webdriver功能需要安裝瀏覽器對應的驅動(dòng)插件。我在這里測試的是 Google Chrome。
  3.微信公眾號申請(個(gè)人訂閱號申請門(mén)檻低,服務(wù)號需要營(yíng)業(yè)執照等)
  4、。微信公眾號文章界面地址可以在微信公眾號后臺新建圖文消息,可以通過(guò)超鏈接功能獲??;
  
  通過(guò)搜索關(guān)鍵字獲取所有相關(guān)公眾號信息,但我只取第一個(gè)進(jìn)行測試,其他感興趣的人也可以全部獲取
  
  5.獲取要爬取的公眾號的fakeid
  
  6.選擇要爬取的公眾號,獲取文章接口地址
  
  從 selenium 導入 webdriver
  導入時(shí)間
  導入json
  導入請求
  重新導入
  隨機導入
  user=""
  password="weikuan3344520"
  gzlist=['熊貓']
  #登錄微信公眾號,登錄后獲取cookie信息,保存在本地文本
  def weChat_login():
  #定義一個(gè)空字典來(lái)存儲cookies的內容
  post={}
  #使用網(wǎng)絡(luò )驅動(dòng)程序啟動(dòng)谷歌瀏覽器
  print("啟動(dòng)瀏覽器,打開(kāi)微信公眾號登錄界面")
  driver = webdriver.Chrome(executable_path='C:\chromedriver.exe')
  #打開(kāi)微信公眾號登錄頁(yè)面
  driver.get('/')
  #等待 5 秒
  time.sleep(5)
  print("輸入微信公眾號賬號和密碼...")
  #清除帳號框中的內容
  driver.find_element_by_xpath("./*//input[@name='account'][@type='text']").clear()
  #自動(dòng)填寫(xiě)登錄用戶(hù)名
  driver.find_element_by_xpath("./*//input[@name='account'][@type='text']").send_keys(user)
  #清空密碼框內容
  driver.find_element_by_xpath("./*//input[@name='password'][@type='password']").clear()
  #自動(dòng)填寫(xiě)登錄密碼
  driver.find_element_by_xpath("./*//input[@name='password'][@type='password']").send_keys(password)
  //這是重點(diǎn),最近改版后
  #自動(dòng)輸入密碼后,需要手動(dòng)點(diǎn)擊記住我
  print("請點(diǎn)擊登錄界面:記住您的賬號")
  time.sleep(10)
  #自動(dòng)點(diǎn)擊登錄按鈕登錄
  driver.find_element_by_xpath("./*//a[@class='btn_login']").click()
  #用手機掃描二維碼!
  print("請用手機掃描二維碼登錄公眾號")
  time.sleep(20)
  print("登錄成功")
  #重新加載公眾號登錄頁(yè)面,登錄后會(huì )顯示公眾號后臺首頁(yè),從返回的內容中獲取cookies信息
  driver.get('/')
  #獲取cookies
  cookie_items = driver.get_cookies()
  #獲取的cookies為列表形式,將cookies轉換為json形式存放在名為cookie的本地文本中
  對于 cookie_items 中的 cookie_item:
  post[cookie_item['name']] = cookie_item['value']
  cookie_str = json.dumps(post)
  with open('cookie.txt','w+', encoding='utf-8') as f:
  f.write(cookie_str)
  print("Cookies 信息已保存在本地")
  #Crawl 微信公眾號文章并存入本地文本
  def get_content(query):
  #query 是要抓取的公眾號名稱(chēng)
  #公眾號首頁(yè)
  url =''
  #設置標題
  標題 = {
  "主機":"",
  "用戶(hù)代理": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/5< @3.0"
  }
  #讀取上一步獲取的cookie
  with open('cookie.txt','r', encoding='utf-8') as f:
  cookie = f.read()
  cookies = json.loads(cookie)
  #登錄后微信公眾號首頁(yè)url改為:/cgi-bin/home?t=home/index&lang=zh_CN&token=1849751598,獲取token信息
  response = requests.get(url=url, cookies=cookies)
  token = re.findall(r'token=(\d+)', str(response.url))[0]
  #搜索微信公眾號接口地址
  search_url ='/cgi-bin/searchbiz?'
  #搜索微信公眾號接口需要傳入的參數,共有三個(gè)變量:微信公眾號token、隨機數random、搜索微信公眾號名稱(chēng)
  query_id = {
  'action':'search_biz',
  'token':令牌,
  'lang':'zh_CN',
  'f':'json',
  'ajax': '1',
  'random': random.random(),
  '查詢(xún)':查詢(xún),
  '開(kāi)始':'0',
  '計數':'5'
  }
  #打開(kāi)搜索微信公眾號接口地址,需要傳入cookies、params、headers等相關(guān)參數信息
  search_response = requests.get(search_url, cookies=cookies, headers=header, params=query_id)
  #取搜索結果第一個(gè)公眾號
  lists = search_response.json().get('list')[0]
  #獲取這個(gè)公眾號的fakeid,然后抓取公眾號文章需要這個(gè)字段
  fakeid = list.get('fakeid')
  #微信公眾號文章界面地址
  appmsg_url ='/cgi-bin/appmsg?'
  #Search文章 需要傳入幾個(gè)參數:登錄公眾號token、爬取文章公眾號fakeid、隨機數random
  query_id_data = {
  'token':令牌,
  'lang':'zh_CN',
  'f':'json',
  'ajax': '1',
  'random': random.random(),
  'action':'list_ex',
  'begin': '0',#不同的頁(yè)面,這個(gè)參數改變,改變規則是每頁(yè)加5
  '計數':'5',
  '查詢(xún)':'',
  'fakeid':fakeid,
  '類(lèi)型':'9'
  }
  #打開(kāi)搜索微信公眾號文章列表頁(yè)
  appmsg_response = requests.get(appmsg_url, cookies=cookies, headers=header, params=query_id_data)
  #獲取文章總數
  max_num = appmsg_response.json().get('app_msg_cnt')
  #每頁(yè)至少有5個(gè)條目,獲取文章頁(yè)總數,爬取時(shí)需要頁(yè)面爬取
  num = int(int(max_num) / 5)
  #起始頁(yè)begin參數,后續每頁(yè)加5
  開(kāi)始 = 0
  當 num + 1> 0 :
  query_id_data = {
  'token':令牌,
  'lang':'zh_CN',
  'f':'json',
  'ajax': '1',
  'random': random.random(),
  'action':'list_ex',
  'begin':'{}'.format(str(begin)),
  '計數':'5',
  '查詢(xún)':'',
  'fakeid':fakeid,
  '類(lèi)型':'9'
  }
  print('翻頁(yè):--------------',begin)
  #獲取每個(gè)頁(yè)面的標題和鏈接地址文章,并寫(xiě)入本地文本
  query_fakeid_response = requests.get(appmsg_url, cookies=cookies, headers=header, params=query_id_data)
  fakeid_list = query_fakeid_response.json().get('app_msg_list')
  對于 fakeid_list 中的項目:
  content_link=item.get('link')
  content_title=item.get('title')
  fileName=query+'.txt'
  with open(fileName,'a',encoding='utf-8') as fh:
  fh.write(content_title+":\n"+content_link+"\n")
  數量 -= 1
  begin = int(begin)
  開(kāi)始+=5
  time.sleep(2)
  如果 __name__=='__main__':
  試試:
  #登錄微信公眾號,登錄后獲取cookie信息,保存在本地文本
  weChat_login()
  #登錄后,爬取微信公眾號文章微信公眾號后臺提供的界面文章
  在 gzlist 中查詢(xún):
  #Crawl 微信公眾號文章并存入本地文本

querylist采集微信公眾號文章(2019年10月28日更新:錄制了一個(gè)YouTube視頻)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 148 次瀏覽 ? 2021-11-02 06:04 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(2019年10月28日更新:錄制了一個(gè)YouTube視頻)
  2019 年 10 月 28 日更新:
  錄制了一段YouTube視頻,詳細解釋了操作步驟:
  ================原創(chuàng )==========================
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。當時(shí)批量采集特別好做,采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)條目現在還是一樣,但是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)2015年html5垃圾站沒(méi)做,改把采集定位到本地新聞資訊公眾號,前端展示做成了app。所以一個(gè)可以自動(dòng)采集的新聞應用 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證你看到的時(shí)候可以看到。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)可以正常顯示內容的完整鏈接是什么樣子的:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的一個(gè)類(lèi)似 id 的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  其余 3 個(gè)參數與用戶(hù)的 id 和 token 票證相關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、 微信客戶(hù)端:可以是安裝了微信應用的手機,也可以是電腦中的安卓模擬器。批量測試的ios微信客戶(hù)端崩潰率采集高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾賬號歷史消息頁(yè)面中的文章列表發(fā)送到自己的服務(wù)器。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用php語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表,建立采集隊列實(shí)現批量采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);---------------2019 年 10 月 28 日更新:此命令不再有效?。?!跳過(guò)這一步
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址:8002,可以看到anyproxy的web界面。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )有302跳轉到/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件內容,則表示解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成CA證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,才能獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,了解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \&#39;(.*?)\&#39;;/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxPost.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  以上代碼是使用anyproxy修改返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require(&#39;http&#39;);
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require(&#39;querystring&#39;).stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
&#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded; charset=UTF-8&#39;,
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding(&#39;utf8&#39;);
res.on(&#39;data&#39;, function (chunk) {
console.log(&#39;BODY: &#39; + chunk);
});
});
req.on(&#39;error&#39;, function (e) {
console.log(&#39;problem with request: &#39; + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是anyproxy的規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次,請原諒我不熟悉windows命令。
  接下來(lái),我們將詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p> 查看全部

  querylist采集微信公眾號文章(2019年10月28日更新:錄制了一個(gè)YouTube視頻)
  2019 年 10 月 28 日更新:
  錄制了一段YouTube視頻,詳細解釋了操作步驟:
  ================原創(chuàng )==========================
  2014年開(kāi)始做微信公眾號內容的批量采集,最初的目的是為了制作html5垃圾郵件網(wǎng)站。當時(shí),垃圾站采集到達的微信公眾號內容很容易在公眾號傳播。當時(shí)批量采集特別好做,采集的入口就是公眾號的歷史新聞頁(yè)面。這個(gè)條目現在還是一樣,但是越來(lái)越難采集。采集的方法也更新了很多版本。后來(lái)2015年html5垃圾站沒(méi)做,改把采集定位到本地新聞資訊公眾號,前端展示做成了app。所以一個(gè)可以自動(dòng)采集的新聞應用 公眾號內容形成。曾經(jīng)擔心微信技術(shù)升級一天后,采集的內容不可用,我的新聞應用會(huì )失敗。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。但是隨著(zhù)微信的不斷技術(shù)升級,采集的方法也得到了升級,這讓我越來(lái)越有信心。只要公眾號歷史消息頁(yè)面存在,就可以批量采集查看內容。所以今天整理了一下,決定把采集這個(gè)方法寫(xiě)下來(lái)。我的方法來(lái)自于很多同事的分享精神,所以我會(huì )延續這種精神,分享我的成果。
  本文文章會(huì )持續更新,保證你看到的時(shí)候可以看到。
  首先我們來(lái)看一個(gè)微信公眾號歷史消息頁(yè)面的鏈接地址:
  http://mp.weixin.qq.com/mp/get ... irect
  ========2017 年 1 月 11 日更新 ==========
  現在,根據不同的微信個(gè)人賬號,會(huì )有兩個(gè)不同的歷史消息頁(yè)面地址。以下是另一個(gè)歷史消息頁(yè)面的地址。第一種地址的鏈接在anyproxy中會(huì )顯示302跳轉:
  https://mp.weixin.qq.com/mp/pr ... irect
  第一個(gè)鏈接地址的頁(yè)面樣式:
  
  第二個(gè)鏈接地址的頁(yè)面樣式:
  
  根據目前的信息,這兩種頁(yè)面格式在不同的微信賬號中出現不規則。有的微信賬號永遠是第一頁(yè)格式,有的永遠是第二頁(yè)格式。
  上面的鏈接是微信公眾號歷史新聞頁(yè)面的真實(shí)鏈接,但是當我們在瀏覽器中輸入這個(gè)鏈接時(shí),會(huì )顯示:請從微信客戶(hù)端訪(fǎng)問(wèn)。這是因為鏈接地址實(shí)際上需要幾個(gè)參數才能正常顯示內容。我們來(lái)看看一個(gè)可以正常顯示內容的完整鏈接是什么樣子的:
  //第一種鏈接
http://mp.weixin.qq.com/mp/get ... r%3D1
//第二種
http://mp.weixin.qq.com/mp/pro ... r%3D1
  該地址是通過(guò)微信客戶(hù)端打開(kāi)歷史消息頁(yè)面后,使用后面介紹的代理服務(wù)器軟件獲取的。有幾個(gè)參數:
  action=;__biz=;uin=;key=;devicetype=;version=;lang=;nettype=;scene=;pass_ticket=;wx_header=;
  重要的參數是:__biz;uin=;key=;pass_ticket=; 這4個(gè)參數。
  __biz 是公眾號的一個(gè)類(lèi)似 id 的參數。每個(gè)公眾號都有一個(gè)微信。目前公眾號的biz變動(dòng)的可能性很??;
  其余 3 個(gè)參數與用戶(hù)的 id 和 token 票證相關(guān)。這3個(gè)參數的值在微信客戶(hù)端生成后會(huì )自動(dòng)添加到地址欄。所以我們認為采集公眾號必須通過(guò)微信客戶(hù)端。在之前的微信版本中,這3個(gè)參數也可以一次性獲取,在有效期內可以使用多個(gè)公眾號。在當前版本中,每次訪(fǎng)問(wèn)公眾號時(shí)都會(huì )更改參數值。
  我現在使用的方法只需要關(guān)注__biz參數即可。
  我的采集系統由以下部分組成:
  1、 微信客戶(hù)端:可以是安裝了微信應用的手機,也可以是電腦中的安卓模擬器。批量測試的ios微信客戶(hù)端崩潰率采集高于A(yíng)ndroid系統。為了降低成本,我使用了Android模擬器。
  
  2、一個(gè)微信個(gè)人號:采集的內容不僅需要一個(gè)微信客戶(hù)端,還需要一個(gè)專(zhuān)用于采集的微信個(gè)人號,因為這個(gè)微信號不能做其他事情.
  3、本地代理服務(wù)器系統:目前使用的方法是通過(guò)Anyproxy代理服務(wù)器將公眾賬號歷史消息頁(yè)面中的文章列表發(fā)送到自己的服務(wù)器。具體的安裝方法后面會(huì )詳細介紹。
  4、文章列表分析入庫系統:本人使用php語(yǔ)言編寫(xiě),下篇文章將詳細介紹如何分析文章列表,建立采集隊列實(shí)現批量采集內容。
  步
  一、 安裝模擬器或使用手機安裝微信客戶(hù)端APP,申請微信個(gè)人賬號并登錄APP。這個(gè)就不多介紹了,大家自己做。
  二、代理服務(wù)器系統安裝
  目前我使用 Anyproxy,AnyProxy。這個(gè)軟件的特點(diǎn)是可以獲取https鏈接的內容。2016年初,微信公眾號和微信文章開(kāi)始使用https鏈接。而Anyproxy可以通過(guò)修改規則配置,在公眾號頁(yè)面插入腳本代碼。下面將介紹安裝和配置過(guò)程。
  1、安裝NodeJS
  2、 在命令行或終端運行npm install -g anyproxy,mac系統需要添加sudo;
  3、生成RootCA,https需要這個(gè)證書(shū):運行命令sudo anyproxy --root(windows可能不需要sudo);---------------2019 年 10 月 28 日更新:此命令不再有效?。?!跳過(guò)這一步
  4、 啟動(dòng) anyproxy 運行命令:sudo anyproxy -i; 參數-i表示解析HTTPS;
  5、安裝證書(shū),在手機或者安卓模擬器安裝證書(shū):
  6、設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)關(guān)。通過(guò)dhcp設置為static后就可以看到網(wǎng)關(guān)地址了。閱讀后不要忘記將其設置為自動(dòng)。手機中的代理服務(wù)器地址是運行anyproxy的電腦的ip地址。代理服務(wù)器默認端口為8001;
  
  現在打開(kāi)微信,點(diǎn)擊任意公眾號歷史消息或者文章,就可以看到在終端滾動(dòng)的響應碼。如果沒(méi)有出現,請檢查手機的代理設置是否正確。
  
  現在打開(kāi)瀏覽器地址:8002,可以看到anyproxy的web界面。從微信點(diǎn)擊打開(kāi)歷史消息頁(yè)面,然后在瀏覽器的web界面查看歷史消息頁(yè)面的地址會(huì )滾動(dòng)。
  
  /mp/getmasssendmsg開(kāi)頭的網(wǎng)址是微信歷史消息頁(yè)面。左邊的小鎖表示這個(gè)頁(yè)面是 https 加密的?,F在我們點(diǎn)擊這一行;
  ========2017 年 1 月 11 日更新 ==========
  一些以/mp/getmasssendmsg開(kāi)頭的微信網(wǎng)址會(huì )有302跳轉到/mp/profile_ext?action=home開(kāi)頭的地址。所以點(diǎn)擊這個(gè)地址可以看到內容。
  
  如果右側出現html文件內容,則表示解密成功。如果沒(méi)有內容,請檢查anyproxy運行方式是否有參數i,是否生成CA證書(shū),是否在手機上正確安裝了證書(shū)。
  現在我們手機中的所有內容都可以明文通過(guò)代理服務(wù)器了。接下來(lái),我們需要修改代理服務(wù)器的配置,才能獲取公眾號的內容。
  一、找到配置文件:
  mac系統中配置文件的位置是/usr/local/lib/node_modules/anyproxy/lib/;對于windows系統,不知道還請見(jiàn)諒。根據類(lèi)似mac的文件夾地址應該可以找到這個(gè)目錄。
  二、修改文件rule_default.js
  找到 replaceServerResDataAsync: function(req,res,serverResData,callback) 函數
  修改函數內容(請詳細閱讀注釋?zhuān)@里只是介紹原理,了解后根據自己的情況修改內容):
  ========2017 年 1 月 11 日更新 ==========
  因為有兩種頁(yè)面格式,相同的頁(yè)面格式總是顯示在不同的微信賬號中,但是為了兼容兩種頁(yè)面格式,下面的代碼會(huì )保留兩種頁(yè)面格式的判斷。您也可以使用自己的頁(yè)面從表單中刪除 li
  replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
if(serverResData.toString() !== ""){
try {//防止報錯退出程序
var reg = /msgList = (.*?);/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \&#39;(.*?)\&#39;;/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"getMsgJson.php");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxHis&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"getMsgJson.php");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"getMsgExt.php");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require(&#39;http&#39;);
http.get(&#39;http://xxx.com/getWxPost.php&#39;, function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on(&#39;data&#39;, function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
},
  以上代碼是使用anyproxy修改返回頁(yè)面內容、向頁(yè)面注入腳本、將頁(yè)面內容發(fā)送到服務(wù)器的功能。利用這個(gè)原理批量處理采集公眾號內容和閱讀量。該腳本中自定義了一個(gè)函數,詳細說(shuō)明如下:
  在 rule_default.js 文件末尾添加以下代碼:
  function HttpPost(str,url,path) {//將json發(fā)送到服務(wù)器,str為json內容,url為歷史消息頁(yè)面地址,path是接收程序的路徑和文件名
var http = require(&#39;http&#39;);
var data = {
str: encodeURIComponent(str),
url: encodeURIComponent(url)
};
content = require(&#39;querystring&#39;).stringify(data);
var options = {
method: "POST",
host: "www.xxx.com",//注意沒(méi)有http://,這是服務(wù)器的域名。
port: 80,
path: path,//接收程序的路徑和文件名
headers: {
&#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded; charset=UTF-8&#39;,
"Content-Length": content.length
}
};
var req = http.request(options, function (res) {
res.setEncoding(&#39;utf8&#39;);
res.on(&#39;data&#39;, function (chunk) {
console.log(&#39;BODY: &#39; + chunk);
});
});
req.on(&#39;error&#39;, function (e) {
console.log(&#39;problem with request: &#39; + e.message);
});
req.write(content);
req.end();
}
  以上是規則修改的主要部分。您需要將json內容發(fā)送到您自己的服務(wù)器,并從服務(wù)器獲取到下一頁(yè)的跳轉地址。這涉及到四個(gè)php文件:getMsgJson.php、getMsgExt.php、getWxHis.php、getWxPost.php
  在詳細介紹這4個(gè)php文件之前,為了提高采集系統性能,降低崩潰率,我們還可以做一些修改:
  Android模擬器經(jīng)常訪(fǎng)問(wèn)一些地址,會(huì )導致anyproxy崩潰,找到函數replaceRequestOption:function(req,option),修改函數內容:
  replaceRequestOption : function(req,option){
var newOption = option;
if(/google/i.test(newOption.headers.host)){
newOption.hostname = "www.baidu.com";
newOption.port = "80";
}
return newOption;
},
  以上是anyproxy的規則文件的修改配置。配置修改完成后,重啟anyproxy。在mac系統下,按control+c中斷程序,然后輸入命令sudo anyproxy -i啟動(dòng);如果報錯,程序可能無(wú)法干凈退出,端口被占用。這時(shí)候輸入命令ps -a查看占用的pid,然后輸入命令“kill -9 pid”將pid替換為查詢(xún)到的pid號。殺掉進(jìn)程后,就可以啟動(dòng)anyproxy了。再次,請原諒我不熟悉windows命令。
  接下來(lái),我們將詳細介紹服務(wù)器端接收程序的設計原理:
 ?。ㄒ韵麓a不能直接使用,只介紹原理,部分需要根據自己的服務(wù)器數據庫框架編寫(xiě))
  1、getMsgJson.php:該程序負責接收歷史消息的json,解析并存入數據庫
<p>

querylist采集微信公眾號文章(微信文章下載神器-V20210205,強烈建議升級到最新版本!)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 496 次瀏覽 ? 2021-11-01 01:30 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信文章下載神器-V20210205,強烈建議升級到最新版本!)
  很多公眾號文章真的很棒很有價(jià)值。我們想保存到本地慢慢看的時(shí)候可以使用這個(gè)工具。
  新版本更新
  經(jīng)過(guò)廣大朋友最近的使用,發(fā)現一些問(wèn)題已經(jīng)得到解決,比如點(diǎn)擊啟動(dòng)獲取程序報錯、崩潰等?;蛘咴O置代理失敗等,特別感謝一哥提供遠程環(huán)境給我調試定位問(wèn)題,解決了一個(gè)影響使用的重要問(wèn)題?,F在版本穩定性有了很大的提升。
  目前的穩定版本是:
  微信文章下載神器-V20210205,強烈建議您升級到最新版本。
  一、函數列表
  實(shí)現了以下功能:
  - 簡(jiǎn)單易用的UI界面
  - 啟動(dòng)/停止系統代理
  - 自動(dòng)獲取微信公眾號參數
  - 獲取公眾號所有歷史文章列表
  -只獲取文章公眾號原創(chuàng )的列表
  -獲取指定日期范圍內的公眾號文章列表
  -批量下載獲得的公眾號文章,支持HTML和PDF格式
  -支持續傳下載功能,增量下載
  - 支持將下載的pdf文檔合并成書(shū),并添加導航索引
  -支持全自動(dòng)工作模式(自動(dòng)獲取文章,下載為HTML、PDF、合并)
  二、使用步驟
  1、雙擊微信文章在windows系統上下載Sacred Tool-V20210205.exe,打開(kāi)軟件界面,如下:
  
  
  第一次打開(kāi)時(shí),有些殺毒軟件會(huì )誤報病毒(因為該軟件可以讀寫(xiě)文件,設置代理等),加信任就行了。如下圖可以看到?jīng)]有風(fēng)險。
  
  2、根據軟件狀態(tài)欄的提示:點(diǎn)擊上圖中的開(kāi)始采集按鈕,按照提示進(jìn)行下面的第三步
  3、打開(kāi)電腦微信,打開(kāi)你要下載的微信公眾號列表文章,步驟如下:
  
  4、這時(shí)候就可以了,等待軟件界面獲取對應公眾號的參數,根據右邊設置的下載范圍自動(dòng)獲取歷史文章列表,如下:
  
  5、這時(shí)候點(diǎn)擊上面的批量下載按鈕,顯示如下:
  
  6、此時(shí)點(diǎn)擊右下角的開(kāi)始下載按鈕,顯示如下:
  
  7、下載完成后,HTML文件會(huì )轉成PDF格式,如下圖:
  
  8、 轉換為PDF完成后,可以點(diǎn)擊Merge Document按鈕,如下圖:
  點(diǎn)擊瀏覽按鈕,選擇剛剛下載的pdf文檔所在目錄,點(diǎn)擊開(kāi)始合并。下面會(huì )提示合并文檔所在的目錄。
  
  9、下載文件整理如下:
  每個(gè)公眾號是一個(gè)獨立的目錄,由三個(gè)目錄和下面的合并文件組成
  html以網(wǎng)頁(yè)格式保存公眾號文章
  pdf以pdf格式保存公眾號文章
  json是歷史文章公眾號列表(普通用戶(hù)無(wú)所謂)
  
  下載鏈接:百度盤(pán)
  關(guān)聯(lián):
  提取碼:6666
  復制此內容后,打開(kāi)百度網(wǎng)盤(pán)手機APP,更方便。 查看全部

  querylist采集微信公眾號文章(微信文章下載神器-V20210205,強烈建議升級到最新版本!)
  很多公眾號文章真的很棒很有價(jià)值。我們想保存到本地慢慢看的時(shí)候可以使用這個(gè)工具。
  新版本更新
  經(jīng)過(guò)廣大朋友最近的使用,發(fā)現一些問(wèn)題已經(jīng)得到解決,比如點(diǎn)擊啟動(dòng)獲取程序報錯、崩潰等?;蛘咴O置代理失敗等,特別感謝一哥提供遠程環(huán)境給我調試定位問(wèn)題,解決了一個(gè)影響使用的重要問(wèn)題?,F在版本穩定性有了很大的提升。
  目前的穩定版本是:
  微信文章下載神器-V20210205,強烈建議您升級到最新版本。
  一、函數列表
  實(shí)現了以下功能:
  - 簡(jiǎn)單易用的UI界面
  - 啟動(dòng)/停止系統代理
  - 自動(dòng)獲取微信公眾號參數
  - 獲取公眾號所有歷史文章列表
  -只獲取文章公眾號原創(chuàng )的列表
  -獲取指定日期范圍內的公眾號文章列表
  -批量下載獲得的公眾號文章,支持HTML和PDF格式
  -支持續傳下載功能,增量下載
  - 支持將下載的pdf文檔合并成書(shū),并添加導航索引
  -支持全自動(dòng)工作模式(自動(dòng)獲取文章,下載為HTML、PDF、合并)
  二、使用步驟
  1、雙擊微信文章在windows系統上下載Sacred Tool-V20210205.exe,打開(kāi)軟件界面,如下:
  
  
  第一次打開(kāi)時(shí),有些殺毒軟件會(huì )誤報病毒(因為該軟件可以讀寫(xiě)文件,設置代理等),加信任就行了。如下圖可以看到?jīng)]有風(fēng)險。
  
  2、根據軟件狀態(tài)欄的提示:點(diǎn)擊上圖中的開(kāi)始采集按鈕,按照提示進(jìn)行下面的第三步
  3、打開(kāi)電腦微信,打開(kāi)你要下載的微信公眾號列表文章,步驟如下:
  
  4、這時(shí)候就可以了,等待軟件界面獲取對應公眾號的參數,根據右邊設置的下載范圍自動(dòng)獲取歷史文章列表,如下:
  
  5、這時(shí)候點(diǎn)擊上面的批量下載按鈕,顯示如下:
  
  6、此時(shí)點(diǎn)擊右下角的開(kāi)始下載按鈕,顯示如下:
  
  7、下載完成后,HTML文件會(huì )轉成PDF格式,如下圖:
  
  8、 轉換為PDF完成后,可以點(diǎn)擊Merge Document按鈕,如下圖:
  點(diǎn)擊瀏覽按鈕,選擇剛剛下載的pdf文檔所在目錄,點(diǎn)擊開(kāi)始合并。下面會(huì )提示合并文檔所在的目錄。
  
  9、下載文件整理如下:
  每個(gè)公眾號是一個(gè)獨立的目錄,由三個(gè)目錄和下面的合并文件組成
  html以網(wǎng)頁(yè)格式保存公眾號文章
  pdf以pdf格式保存公眾號文章
  json是歷史文章公眾號列表(普通用戶(hù)無(wú)所謂)
  
  下載鏈接:百度盤(pán)
  關(guān)聯(lián):
  提取碼:6666
  復制此內容后,打開(kāi)百度網(wǎng)盤(pán)手機APP,更方便。

querylist采集微信公眾號文章(壹伴助手快速復制自媒體文章的編輯器教程!助手)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 445 次瀏覽 ? 2021-10-30 23:00 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(壹伴助手快速復制自媒體文章的編輯器教程!助手)
  說(shuō)到復制文章,首先想到的就是打開(kāi)文章,用快捷鍵復制粘貼到微信公眾號。這種方法雖然方便,但經(jīng)常會(huì )出現格式混亂或者樣式和圖片無(wú)法顯示的情況??傊?,文章很難完全復制。
  本文以插件的形式與大家分享一個(gè)編輯器,可以快速復制其他自媒體文章,同時(shí)保證格式的好亂。趕快采集這篇文章吧!
  一幫助手是一款插件編輯器。安裝后直接在公眾號后臺排版即可。僅此一項功能就讓我非常興奮。
  安裝后,公眾號編輯頁(yè)面右側會(huì )有一個(gè)圖文并茂的工具箱。點(diǎn)擊導入文章,輸入公眾號文章鏈接,將其完整復制到編輯頁(yè)面。
  
  如果你要復制的文章是其他平臺,比如今日頭條或者百家號怎么辦?
  朋友們可以先打開(kāi)其他平臺文章,然后右擊選擇采集文章素材,然后采集就可以放到公眾號的素材庫中,或者可以選擇采集去一版云做筆記。
  
  如果采集進(jìn)入素材庫,在素材庫中打開(kāi)文章,編輯好后推送。如果放在易班云筆記中,可以點(diǎn)擊導入文章,來(lái)源是云筆記就可以了。
  除了采集整篇文章文章,你還可以采集單個(gè)樣式。另外,在瀏覽器中打開(kāi)公眾號文章,右側會(huì )出現One Compan Toolbox。
  
  在工具箱中找到采集樣式功能,然后選擇自己喜歡的樣式,點(diǎn)擊復制或采集,直接應用到您的公眾號文章。 查看全部

  querylist采集微信公眾號文章(壹伴助手快速復制自媒體文章的編輯器教程!助手)
  說(shuō)到復制文章,首先想到的就是打開(kāi)文章,用快捷鍵復制粘貼到微信公眾號。這種方法雖然方便,但經(jīng)常會(huì )出現格式混亂或者樣式和圖片無(wú)法顯示的情況??傊?,文章很難完全復制。
  本文以插件的形式與大家分享一個(gè)編輯器,可以快速復制其他自媒體文章,同時(shí)保證格式的好亂。趕快采集這篇文章吧!
  一幫助手是一款插件編輯器。安裝后直接在公眾號后臺排版即可。僅此一項功能就讓我非常興奮。
  安裝后,公眾號編輯頁(yè)面右側會(huì )有一個(gè)圖文并茂的工具箱。點(diǎn)擊導入文章,輸入公眾號文章鏈接,將其完整復制到編輯頁(yè)面。
  
  如果你要復制的文章是其他平臺,比如今日頭條或者百家號怎么辦?
  朋友們可以先打開(kāi)其他平臺文章,然后右擊選擇采集文章素材,然后采集就可以放到公眾號的素材庫中,或者可以選擇采集去一版云做筆記。
  
  如果采集進(jìn)入素材庫,在素材庫中打開(kāi)文章,編輯好后推送。如果放在易班云筆記中,可以點(diǎn)擊導入文章,來(lái)源是云筆記就可以了。
  除了采集整篇文章文章,你還可以采集單個(gè)樣式。另外,在瀏覽器中打開(kāi)公眾號文章,右側會(huì )出現One Compan Toolbox。
  
  在工具箱中找到采集樣式功能,然后選擇自己喜歡的樣式,點(diǎn)擊復制或采集,直接應用到您的公眾號文章。

querylist采集微信公眾號文章(大數據step1:創(chuàng )建querylistnode()查看詳細說(shuō)明。)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 150 次瀏覽 ? 2021-10-30 15:02 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(大數據step1:創(chuàng )建querylistnode()查看詳細說(shuō)明。)
  querylist采集微信公眾號文章大數據step1:創(chuàng )建querylistnode,具體代碼如下#-*-coding:utf-8-*-frombs4importbeautifulsoupimportnumpyasnpimportrequestsheaders={'user-agent':'mozilla/5。
  0(windowsnt6。1;win64;x64)applewebkit/537。36(khtml,likegecko)chrome/58。2643。100safari/537。36'}#創(chuàng )建一個(gè)url,保存所有圖片及鏈接url='/'s=set()#構建全局變量#s=[]classurllistnode(object):#保存所有的鏈接,圖片列表filename='全局配置'screenshot_size=200size='utf-8'last_matched=''url_type='text/html;charset=utf-8'data={}doc=requests。
  get(url_type,size=size,headers=headers)imgs={}forsource,img,filenameinimgs:urllistnode。append(url)#加載所有圖片forurlinurllistnode:img=url。replace(url,'。jpg')print(img)#圖片列表返回print(data)print('詳細說(shuō)明')查看詳細說(shuō)明更多詳情querylist方法介紹以上,希望有所幫助!itchat安卓客戶(hù)端使用說(shuō)明(https://)-android應用。 查看全部

  querylist采集微信公眾號文章(大數據step1:創(chuàng )建querylistnode()查看詳細說(shuō)明。)
  querylist采集微信公眾號文章大數據step1:創(chuàng )建querylistnode,具體代碼如下#-*-coding:utf-8-*-frombs4importbeautifulsoupimportnumpyasnpimportrequestsheaders={'user-agent':'mozilla/5。
  0(windowsnt6。1;win64;x64)applewebkit/537。36(khtml,likegecko)chrome/58。2643。100safari/537。36'}#創(chuàng )建一個(gè)url,保存所有圖片及鏈接url='/'s=set()#構建全局變量#s=[]classurllistnode(object):#保存所有的鏈接,圖片列表filename='全局配置'screenshot_size=200size='utf-8'last_matched=''url_type='text/html;charset=utf-8'data={}doc=requests。
  get(url_type,size=size,headers=headers)imgs={}forsource,img,filenameinimgs:urllistnode。append(url)#加載所有圖片forurlinurllistnode:img=url。replace(url,'。jpg')print(img)#圖片列表返回print(data)print('詳細說(shuō)明')查看詳細說(shuō)明更多詳情querylist方法介紹以上,希望有所幫助!itchat安卓客戶(hù)端使用說(shuō)明(https://)-android應用。

官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

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