1. 程式人生 > >搜狗微信公眾號文章抓取

搜狗微信公眾號文章抓取

機器能做的事就別讓人來做!

目標: 抓取特定微信公眾號文章

思路:利用selenium模擬瀏覽器行為,進行抓取(理由:搜狗已將文章連結進行處理,且頁面為動態生成)

框架:

  

步驟:

1、登入搜狗

  a、找到登入按鈕並點選

  self.browser.find_element_by_id("loginbtn").click()
     此時產生一個登入的iframe,其中還巢狀一個iframe,都是動態生成的,內嵌於該頁面的另一個新的html頁面,我們需要
   定位到第二個iframe才能進行真正的登入操作
  
  b、定位到登入介面的實際iframe
  self.browser.switch_to.frame(0)
  time.sleep(10)
  self.browser.switch_to.frame("ptlogin_iframe")    // ptlogin_iframe為實際登入介面的iframe
  
  c、 實現qq快捷登入
  利用qq實現快速登入,前提是你已登入自己的qq賬號,然後在頁面直接點選你的qq頭像即可實現登入操作。當然,你也可以通過賬號/密碼實現登入。
  self.browser.find_element_by_id("qlogin_list").find_element_by_xpath("a").click()  // 找到你的qq頭像對應的元素位置並點選

2、抓取文章
  搜狗頁面呈現方式:





















抓取資料格式:
  標題, 概要資訊, 釋出時間, 圖片url, 文章實際url
通過審查元素,我們看一下每個文章在頁面原始碼中的表現形式,如下圖:

  href連結到的是文章正文頁,但是該連結並非文章的實際連結地址,因此我們需要點選該連結到文章正文頁面獲取其真實連結。
其他元資料資訊則可由頁面直接獲取。具體獲取方法,即通過find_element定位到相應元素,獲取元素text資訊,此處不再
贅述。
  說明一下獲取文章實際url,可通過點選文章標題或圖片跳轉到文章頁面,此時會新產生一個視窗,我們需要切換到該窗
口,才能獲取到當前的視窗URL,然後再切換回原來的視窗,繼續下一個文章元資料的抓取過程,具體操作如下:
  
複製程式碼
 1 def get_target_url(self, no):
 2         """
 3          get real url(without encryption) of target page
 4         :param no: NO.
 5         :return target_url:
 6         :Usage:
 7         """
 8         box_a = self.get_box(no).find_element_by_xpath("div[@class='txt-box']//h4//a")       # 找到標題元素並點選
9 current_handle = self.browser.current_window_handle # 保留當前視窗控制代碼 10 box_a.click() 11 for handle in self.browser.window_handles: 12 if handle == current_handle: 13 continue 14 else: 15 # 切換到文章正文視窗,獲取url後關閉,並回到主視窗 16 self.browser.switch_to_window(handle) 17 target_url = self.browser.current_url 18 self.browser.close() 19 self.browser.switch_to_window(current_handle) 20 return target_url
複製程式碼

3、抓取更多文章

    初始頁面預設呈現10篇文章,點選頁面底部“檢視更多”可獲得更多文章,每次10篇,若到達最後,則不再出現“檢視更多”。具體做法:

審查元素獲取“檢視更多”並點選,每個文章對應一個div,其ID形式如“sogou_vr_11002601_box_0”,末尾的0是編號,順序遞增,檢視

更多後,可通過該ID值獲取最新出現的文章。

1 def get_more(self):
 2         try:
 3             more = self.browser.find_element_by_class_name("p-more")
 4             if more.get_attribute("style") == "visibility: hidden;":
 5                 return False
 6             else:
 7                 more.find_element_by_xpath("a").click()
 8                 return True
 9         except Exception, e:
10             print e.message
  

相關推薦

公眾文章

機器能做的事就別讓人來做! 目標: 抓取特定微信公眾號文章 思路:利用selenium模擬瀏覽器行為,進行抓取(理由:搜狗已將文章連結進行處理,且頁面為動態生成) 框架:    步驟: 1、登入搜狗   a、找到登入按鈕並點選   self.browser.

文章公眾文章常識之臨時連結、永久連結

未經允許請勿轉載 曾經嘗試過抓取微信文章的小夥伴,一定很熟悉搜狗微信。搜狗微信是騰訊官方提供的搜尋引擎,專門用來搜尋微信公眾號發表的文章(不包含服務號)。 對於想要獲取微信文章進行研究學習的小夥伴,首先探索的途徑通常是搜狗微信。那麼關於搜狗微信以及微信相關的抓取,需

關於公眾文章

今天公司要我抓取微信公眾號文章,我百度了半天得到的方法有三種: 具體內容我就不復制了請去下面這個連結去看,寫的挺好 微信公眾號文章採集方案 在三者中我選擇了比較穩妥的第二種:對手機微信進行中間人攻擊 因為之前被封過小號,所以感覺解封微信太麻煩 而關於如何中間人攻擊請參考下面的連結

第三百三十節,web爬蟲講解2—urllib庫爬蟲—實戰爬公眾

文章 odin data 模塊 webapi 頭信息 hone 微信 android 第三百三十節,web爬蟲講解2—urllib庫爬蟲—實戰爬取搜狗微信公眾號 封裝模塊 #!/usr/bin/env python # -*- coding: utf-8 -*- impo

利用公眾文章

微信一直是一個自己玩的小圈子,前段時間搜狗推出的微信搜尋帶來了一絲曙光。搜狗搜尋推出了內容搜尋和公眾號搜尋兩種,利用後者可以抓取微信公眾號的最新內容,看了下還是比較及時的。 每個公眾號都有一個openid,最早可以直接利用http://weixin.sogou

記一次企業級爬蟲系統升級改造(四):爬公眾文章(通過與新榜等第三方平臺)

首先表示抱歉,年底大家都懂的,又涉及SupportYun系統V1.0上線。故而第四篇文章來的有點晚了些~~~對關注的朋友說聲sorry! SupportYun系統當前一覽:   首先說一下,文章的進度一直是延後於系統開發進度的。   當前系統V1.0 已經正式上線服役了,這

python爬蟲(17)爬出新高度_公眾文章(selenium+phantomjs)(上)

抓取微信公眾號的文章 一.思路分析 目前所知曉的能夠抓取的方法有: 1、微信APP中微信公眾號文章連結的直接抓取(http://mp.weixin.qq.com/s?__biz=MjM5MzU4ODk2MA==&mid=2735446906&idx=1&am

python爬蟲(17)爬出新高度_公眾文章(selenium+phantomjs)(下)(windows版本)

前兩天在linux 上面寫了一版爬取微信公眾號的文章 今天重新修改一下,讓它在windows上面也能執行 執行下面的程式碼需要安裝以下內容: pip install pyquery pip install requests pip install selenium

iframe顯示公眾文章

origin replace dom節點 列表 charset string 請求 資料 domain 最近在做一個案例頁面,主要結構就是列表和內容,還有固定的頭部和底部(方便查看價格及購買),因為之前的案例詳情頁是很多的固定頁面,這樣不太方便維護,現在其他同事需要展示不同

python 多線程方法爬公眾文章

微信爬蟲 多線程爬蟲 本文在上一篇基礎上增加多線程處理(http://blog.51cto.com/superleedo/2124494 )執行思路:1,規劃好執行流程,建立兩個執行線程,一個控制線程2,線程1用於獲取url,並寫入urlqueue隊列3,線程2,通過線程1的url獲取文章內容,並保

PK10平臺開發與用python爬公眾文章

網址 谷歌瀏覽器 pytho google http 開發 微信 安裝python rom 本文通過微信提供微信PK10平臺開發[q-21528-76294] 網址diguaym.com 的公眾號文章調用接口,實現爬取公眾號文章的功能。註意事項 1.需要安裝python s

Python 爬蟲爬指定公眾文章

該方法是依賴於urllib2庫來完成的,首先你需要安裝好你的python環境,然後安裝urllib2庫 程式的起始方法(返回值是公眾號文章列表): def openUrl(): print("啟動爬蟲,開啟搜狗搜尋微信介面") # 載入頁面 url

如何採集公眾文章|文章採集技巧

微信文章採集技巧用相關軟體就好了,推薦:痕夕軟體 推薦文章:微信營銷技巧:怎麼讓顧客主動找你 一、巧用二維碼 一般微信活動的分享,都會選擇通過連結、二維碼轉發來引流客戶,放大微信活動的營銷價值。除了微信朋友圈/微信群的轉發,還可以通過其他媒體平臺進行廣發“二維碼”,比如

公眾文章的閱讀量和點贊數獲取指南

本文主要介紹“微信公眾號文章閱讀點贊API”的呼叫方法,以及呼叫前的準備工作和呼叫過程中可能出現的問題。 自打微信推出閱讀和點贊這一指標以來,網際網路上如何獲取、監控文章閱讀點讚的方法就層出不窮但卻不易實現,接下來,一起看看“微信公眾號文章閱讀點贊API”的呼叫。 在API測試頁,點

設定weixin://dl/business/?ticket=xxx喚起跳轉公眾文章mp.weixin.qq.com/s/xxx的方法

很多人問我最近,怎麼樣外部手機瀏覽器才能開啟微信跳轉到公眾號文章連結,比如: https://mp.weixin.qq.com/s/COlBhig2NJO5IXpDiTBhDA ,這樣的連結又是如何生成的?檢視原始碼是通過 類似weixin://dl/business/?ticket=xxx這樣的地址實現

分享一個可以提高公眾文章閱讀率的小工具!公眾運營者必備哦!

這個工具叫“閱讀紅包”。 “閱讀紅包”是個什麼東西? 閱讀紅包可以理解為文章的彩蛋。 也就是,當你的粉絲閱讀完了你群發的文章,在文章末尾驚喜的發現了一個“領取紅包”的連結,該粉絲點選連結,即可按設定的中獎概率獲得一個微信紅包。 有什麼用處? 1. 給自己的粉

【Python爬蟲】爬公眾文章資訊準備工作

有一天發現我關注了好多微信公眾號,那時就想有沒有什麼辦法能夠將微信公眾號的文章弄下來,而且還想將一些文章的精彩評論一起搞下來。參考了一些文章,通過幾天的研究基本上實現了自己的要求,現在記錄一下自己的一些心得。 整個研究過程如下: 1.瞭解微信公眾號文章連結的組成,歷史文章API組成,單個文章

公眾文章連結引數

https://mp.weixin.qq.com/s?src=3&timestamp=1496819538&ver=1&signature=2Ui56lfdJ7txnkcz0Y0tXtfKXX8Dnh2Thra4pQ*iyV8afGJ7Z8umw

PC 上檢視公眾文章的方法

1. 前言 在微信公眾號上,我關注了幾個很好的公眾號,比如玉剛說,鴻洋,郭霖。每天早上都會關注最新發文。遇到好的文章就收藏起來,有時間就拜讀一番,真得是受益匪淺。但是,在電腦上看,卻每次都是把連結從手機轉到電腦上開啟,很不方便。那麼,有沒有更好的辦法呢?有的。

用python爬公眾文章

本文通過微信提供的公眾號文章呼叫介面,實現爬取公眾號文章的功能。 # -*- coding: utf-8 -*- from selenium import webdriver import time import json import reques