最近中文字幕2019高清,亚洲人成高清在线播放,男生淦哭男生图片动漫有字,国产亚洲精品九九久在线观看,无码av专区丝袜专区

PHP開(kāi)發(fā)-微信公眾號文章采集原理及思路

優(yōu)采云 發(fā)布時(shí)間: 2020-06-22 08:03

  

  之前有發(fā)布一篇文章,簡(jiǎn)單寫(xiě)了一下文章內容頁(yè)面的爬取。近日又寫(xiě)了一下爬取文章列表,可用于采集公眾號文章。

  在搜索引擎上搜:搜狗陌陌文章爬取

  可發(fā)覺(jué)一大堆借助了 搜狗 的陌陌搜索功能去爬取并采集微信公眾號文章的內容。

  也可以發(fā)覺(jué),都是用 Python 寫(xiě)的。而本文一直采用 PHP 編寫(xiě)以達到同樣療效,文章僅講解爬取原理及思路,用于學(xué)習研究。

  打開(kāi) 搜狗 可以隨意輸入一個(gè)關(guān)鍵詞搜索公眾號文章。

  

  此時(shí)注意看 URL 地址欄

  https://weixin.sogou.com/weixin?type=2&s_from=input&query=%E4%B8%8D%E8%B4%A5%E5%90%9B&ie=utf8&_sug_=n&_sug_type_=

  簡(jiǎn)單剖析下 URL 參數。

  參數 type 是定義搜索類(lèi)型,為 1 時(shí)搜索的是公眾號,為 2 就是公眾號文章。

  參數 query 是定義搜索關(guān)鍵詞微信文章采集 php,注意是經(jīng)過(guò) URL 編碼的。

  另外還有一個(gè) page 參數,由于搜索進(jìn)來(lái)沒(méi)有翻頁(yè) 所以這個(gè)參數沒(méi)顯示下來(lái)。需要曉得這個(gè)參數是拿來(lái)翻頁(yè)即可。

  知道 URL 的規則后,就可以進(jìn)行拼接 URL 進(jìn)行文章列表采集了,具體代碼實(shí)現 可參考之前的博文:

  其實(shí)無(wú)非就是循環(huán)列表的 div 標簽收集到文章的標題、描述、公眾號名稱(chēng)。然后執行完了下一頁(yè)的時(shí)侯可在原 page 參數值上加一。

  到目前為止還沒(méi)哪些技術(shù)難點(diǎn),因為列表的采集沒(méi)很強的反爬蟲(chóng),當然 如果執行頻度很高才會(huì )觸發(fā)反爬蟲(chóng)機制。所以這個(gè)頻度要控制好。

  觸發(fā)反爬蟲(chóng)以后:

  

  之前的博文中是采集文章內容,但是并沒(méi)有遇見(jiàn)反爬蟲(chóng)機制,此處的列表頁(yè)是有反爬蟲(chóng)機制的。爬取列表頁(yè)須要加上 UA 偽造??蓞⒖枷逻叴a:

  $ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36';

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, '列表頁(yè)地址');

curl_setopt($curl, CURLOPT_USERAGENT, $ua);

//curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_exec($curl);

curl_close($curl);

  爬取到該列表的 HTML 代碼然后,請求中會(huì )有一段 COOKIE,需要將這段 COOKIE 保存出來(lái)。然后采集到的 a 標簽的 href 值,是須要攜帶 COOKIE 進(jìn)行懇求的,爬取頻度很高都會(huì )封禁 IP 及 COOKIE。

  

  所以本文的做法是不采集 href 屬性,而是 data-share 屬性,采集之后就挺好操作了,和先前的博文幾乎一致的操作。

  

  頻率很高太可能還會(huì )被封禁 IP,所以還嘗試了使用 IP 代理

  使用 IP 代理的方式也很簡(jiǎn)單,由于這是免費的 IP 代理服務(wù) 所以可能隨時(shí)就會(huì )難以聯(lián)接。解決方式是 先爬取這個(gè)站點(diǎn)的 IP 代理,爬取出來(lái)執行一次 CURL 看看能不能連上,如果連上就保存上去。

  一個(gè)簡(jiǎn)單的 CURL 加代理 DEMO:

  $ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36';

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, '文章內容頁(yè)');

curl_setopt($curl, CURLOPT_USERAGENT, $ua);

//curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($curl, CURLOPT_COOKIE, '這里可放cookie');

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($curl,CURLOPT_PROXY,'代理 IP');

curl_setopt($curl,CURLOPT_PROXYPORT,'端口');

curl_setopt ($curl, CURLOPT_TIMEOUT, 100);

curl_exec($curl);

curl_getinfo($curl); //可獲取請求信息

curl_close($curl);

  爬取到了 HTML 后,可使用 PHP Simple HTML DOM Parser 或者 QueryList 進(jìn)行解析 HTML。

  解析 HTML 獲取到須要的內容就可以保存到數據庫了。

  經(jīng)過(guò)處理后的療效(已經(jīng)可展示在自己的 H5 網(wǎng)頁(yè)):

  

  此時(shí)早已可以完成借助搜狗爬取微信公眾號文章。還有一些網(wǎng)站不寫(xiě)原創(chuàng )文章微信文章采集 php,使用爬蟲(chóng)四處爬文章發(fā)布也是同樣的原理。

  最后還是說(shuō)一句,本文僅供學(xué)習與研究。

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

最近中文字幕2019高清,亚洲人成高清在线播放,男生淦哭男生图片动漫有字,国产亚洲精品九九久在线观看,无码av专区丝袜专区