V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
hubqin
V2EX  ›  Python

Python +mysql 简易爬虫给新浪大 V 微博和文章做备份

  •  
  •   hubqin · 2018-07-02 23:42:17 +08:00 · 4054 次点击
    这是一个创建于 2115 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写了个爬虫定期抓取新浪指定用户的微博和文章,以防哪天失联了还能看备份。 GitHub: https://github.com/HubQin/sinaCrawlerV

    各文件功能:

    使用:

    • 创建数据表:运行 sina.sql 创建数据表
    • 完善 config.py 的参数,抓取微博使用移动端的请求链接;抓取文章需要登录,这里手动登录后,查看移动端的异步请求,复制 Request Header 里面的 cookie 出来使用
    • 命令行终端 cd 到 py 文件所在目录,运行 pyhton.pyarticle.py ,或修改 auto.bat 文件的 cd 路径,双击改文件开始抓取
    第 1 条附言  ·  2018-07-16 14:08:53 +08:00
    @JohnChiu

    这里使用谷歌浏览器

    1. 微博列表链接获取
    a. 使用微博手机端链接: https://m.weibo.cn/ ,打开页面后搜索想要抓取的用户名,如图:


    b. 点击搜索到的用户,点击进入用户的主页:


    c. 在页面上右键菜单选择查看(审查元素),点击 Network-->XHR, 滚动页面触发数据加载:

    箭头所指的链接即该用户微博列表请求链接,即文件 config.py 中的 listUrlFormat 参数,注意结尾 page 的值替换为{}(也可以替换里面的 uid 和 container_id )

    2. 文章列表链接和 Cookie 获取:
    a. 需要先登录微博账号。然后点开文章列表:


    b. 按 1 中同样的方法获得文章列表请求链接


    箭头所指的值即文章列表请求链接,即文件 config.py 中的 articleListUrlFormat 参数,注意结尾 page 的值替换为{}
    c.点击 Header 获取 Cookie,如图:


    将该 cookie 的值赋给 articleHeaders 的 Cookie
    9 条回复    2018-07-16 21:18:51 +08:00
    Sanko
        1
    Sanko  
       2018-07-02 23:45:48 +08:00 via Android
    支持
    把微博热搜也抓一下,就能看出来哪些是用钱买的空降热搜了
    ACool
        2
    ACool  
       2018-07-02 23:53:08 +08:00 via Android
    我最近也写了一个微博的爬虫,并且对微博用户信息进行了分析 https://github.com/starFalll/Spider
    Macuilxochitl
        3
    Macuilxochitl  
       2018-07-03 00:02:08 +08:00 via Android
    mark,正好想备份下自己微博
    winsky
        4
    winsky  
       2018-07-03 00:15:58 +08:00
    以前也搞过一个类似的项目,跑的很稳定,多线程抓取
    hubqin
        5
    hubqin  
    OP
       2018-07-03 09:21:08 +08:00 via Android
    @Sanko 多谢支持!可以试一下。
    JohnChiu
        6
    JohnChiu  
       2018-07-14 20:59:41 +08:00
    弱弱地问一下,在哪里指定抓取哪个用户呢?在 config.pypost.py 中都没看出来~
    hubqin
        7
    hubqin  
    OP
       2018-07-16 14:12:31 +08:00   ❤️ 1
    @JohnChiu 详细说明已添加到附言,请查看。
    JohnChiu
        8
    JohnChiu  
       2018-07-16 20:23:37 +08:00
    @hubqin #7 感谢!希望以后能爬取微博中的图片~
    hubqin
        9
    hubqin  
    OP
       2018-07-16 21:18:51 +08:00
    @JohnChiu 计划把图片的 url 保存下来
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   979 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:35 · PVG 04:35 · LAX 13:35 · JFK 16:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.