mitmproxy爬邏輯思維文章

image

一、分析頁(yè)面

首先,用命令行工具打開(kāi)mitmweb,如圖:

mitmweb
image

然后,將手動(dòng)配置手機(jī)的代理服務(wù)器為PC機(jī)。

如何配置可以參考之前的文章https://www.cnblogs.com/xyztank/articles/12362470.html

接著,在手機(jī)打開(kāi)想要爬取的軟件“得到App”。

image

根據(jù)代理截獲的數(shù)據(jù),然后進(jìn)行分析,最終定位文章地址列表:

https://entree.igetget.com/bauhinia/v1/class/purchase/article_list

然后,分析服務(wù)器返回的json數(shù)據(jù),可以看到文章的標(biāo)題及地址。

image

二、代碼實(shí)現(xiàn)

from mitmproxy import ctx
import json
from lxml import etree
from selenium import webdriver

def response(flow):
    """
    利用mitmdump ui分析出頁(yè)面url
    """
    start_url = "https://entree.igetget.com/bauhinia/v1/class/purchase/article_list"
    if flow.request.url.startswith(start_url):
        text = flow.response.text
        data = json.loads(text)
        talks = data.get('c').get('article_list')
        for talk in talks:
            title = talk.get('share_title')
            url = talk.get('share_url')
            ctx.log.info(str(title))
            parse_page(url)


def parse_page(url):
    """
    發(fā)現(xiàn)獲得的url頁(yè)面無(wú)法直接解析,
    進(jìn)一步分析得出,頁(yè)面信息是通過(guò)js渲染,
    但是瀏覽器又能正常顯示頁(yè)面,于是采用selenium方式爬取信息
    """
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument("--headless")
    #通過(guò)headless設(shè)置,讓瀏覽器不再顯示
    driver = webdriver.Chrome(chrome_options=chrome_options)
    driver.get(url)
    resouce = driver.page_source
    html = etree.HTML(resouce)
    title = html.xpath('//h1[@class="title"]/text()')[0]
    time = html.xpath('//span[@class="time"]/text()')[0]
    content = html.xpath('//div[@class="text"]//p//text()')
    content = "".join(content)
    print(title, time)
    save(title, time, content)


def save(title,time,content):
    """
    保存至文本文件中
    """
    with open('dedao.txt','a',encoding='utf-8') as fp:
        fp.write('\n'.join([title,content,time]))
        fp.write('\n' + '='*50 + '\n')

windows平臺(tái)命令行運(yùn)行腳本:

mitmdump -s test_dedao.py
image

這里可以看到控制臺(tái)正在不斷的打印正在爬取的文章標(biāo)題。

三、結(jié)果展示

當(dāng)然,數(shù)據(jù)還可以保存在數(shù)據(jù)庫(kù)中,這里偷個(gè)懶,就直接保存在txt文件中。

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • feisky云計(jì)算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 4,383評(píng)論 0 5
  • 我老家是北方農(nóng)村習(xí)見(jiàn)的二層簡(jiǎn)易房,回來(lái)我就一個(gè)人待在上面,很少下去。中午下去,發(fā)現(xiàn)廳里陰暗,窗簾垂著,電視開(kāi)著,外...
    三省書(shū)閱讀 387評(píng)論 0 0
  • 9講員:蔡博生 牧師 經(jīng)文:出20:1-6;詩(shī)81:6-10 十誡(申5:1—21) 【出 20:1】 神吩咐這一...
    繼中閱讀 2,653評(píng)論 0 0
  • 近來(lái),我在讀尹建莉老師的書(shū)《好媽媽勝過(guò)好老師》之《自由的孩子最自覺(jué)》,受益匪淺。 尹老師的教育理念讓我豁然開(kāi)朗,在...
    愛(ài)滿自溢錢麗閱讀 153評(píng)論 0 1
  • 這次運(yùn)動(dòng)會(huì)上,小文家先生觀看集體跳繩比賽后,對(duì)她說(shuō):你們領(lǐng)導(dǎo)可以呀!把你們這些大叔、大媽都組織來(lái)跳繩了!小文不干了...
    金明啊閱讀 413評(píng)論 0 0

友情鏈接更多精彩內(nèi)容