mitmproxy爬逻辑思维文章

image

一、分析页面

首先,用命令行工具打开mitmweb,如图:

mitmweb
image

然后,将手动配置手机的代理服务器为PC机。

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

接着,在手机打开想要爬取的软件“得到App”。

image

根据代理截获的数据,然后进行分析,最终定位文章地址列表:

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

然后,分析服务器返回的json数据,可以看到文章的标题及地址。

image

二、代码实现

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

def response(flow):
    """
    利用mitmdump ui分析出页面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):
    """
    发现获得的url页面无法直接解析,
    进一步分析得出,页面信息是通过js渲染,
    但是浏览器又能正常显示页面,于是采用selenium方式爬取信息
    """
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument("--headless")
    #通过headless设置,让浏览器不再显示
    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平台命令行运行脚本:

mitmdump -s test_dedao.py
image

这里可以看到控制台正在不断的打印正在爬取的文章标题。

三、结果展示

当然,数据还可以保存在数据库中,这里偷个懒,就直接保存在txt文件中。

image
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,938评论 0 5
  • 我老家是北方农村习见的二层简易房,回来我就一个人待在上面,很少下去。中午下去,发现厅里阴暗,窗帘垂着,电视开着,外...
    三省书阅读 367评论 0 0
  • 9讲员:蔡博生 牧师 经文:出20:1-6;诗81:6-10 十诫(申5:1—21) 【出 20:1】 神吩咐这一...
    继中阅读 1,859评论 0 0
  • 近来,我在读尹建莉老师的书《好妈妈胜过好老师》之《自由的孩子最自觉》,受益匪浅。 尹老师的教育理念让我豁然开朗,在...
    爱满自溢钱丽阅读 126评论 0 1
  • 这次运动会上,小文家先生观看集体跳绳比赛后,对她说:你们领导可以呀!把你们这些大叔、大妈都组织来跳绳了!小文不干了...
    金明啊阅读 331评论 0 0