Git Product home page Git Product logo

csdn_spider_selenium's Introduction

爬取CSDN的内容

考虑到将写的内容爬取下来,保存起来的避免误删,算是个备份的,而且方便查找,阅读起来也更方便,使用起来也好很多

亮点

保存articlepdfmarkdown,并保存相应的图片、codes以及website,排版基本按照网页,支持保存数学公式到markdown

反爬

详见blog,codes延长了休眠时间,每个article爬取以后统一休眠30秒。

cloudflare反爬,使用Selenium爬取的网址被cloudflare保护起来了的

cloudflare反爬,使用Selenium爬取的网址被cloudflare保护起来了的

LOG

-----------20230729 使用beautifulsoup库来进行解析网页,使用起来更加稳定的而且排版更加贴近网页,之前是使用的selenium

-----------202306 上传

爬取到的article展示

点击即可进入article目录查看的
每篇article都附带了修改时间和阅读数

保存到Markdown格式的数学公式、codes和图片
c++ set运算符重载
卷积和转置卷积矩阵计算

保存到PDF格式的,标题下面是网址

环境以及安装

win10 python

1、点击下面这个网页,安装miniconda也就是安装python,下载好以后安装即可,在安装时需要加入到系统环境变量,勾选下图第二个框即可。
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_23.3.1-0-Windows-x86_64.exe
2、接着需要修改python安装的路径,将msedgedriver\.condarc这个档案放到根目录C:\Users\username即可,另外再打开一个cmd或者PowerShell 运行conda clean -i输入Y即可,此时Python已经可以使用了

3、安装Python相关的调用库,另外再打开一个cmd或者PowerShell,运行
cd C:\Users\usrname\csdn
pip install -r .\requirement.txt

使用

1、登录

进入个人主页,先点击个人中心,然后点击个人主页,拿到个人主页的网址即可,像这里的个人地址是https://blog.csdn.net/m0_50617544,然后加上后缀就是https://blog.csdn.net/m0_50617544?type=blog,用到的网址是后面这个
运行以下内容,网址需要用个人的替掉,这一步是手动操作,需要人工输入账号和密码,然后点击登录就行,登录以后会自动保存好cookie,以后爬取时就不用重复登录了,保存的cookie在这个目录的cookie,产生的档案是cookie_csdn.pkl

python crawler.py --csdn_person_website https://blog.csdn.net/m0_50617544?type=blog

运行以后会弹出一个浏览器,自动打开CSDN页面以后就可以开始登录,下图所示就是登录页面,三类登录方式都可以,只要能登录就行,点击登录以后,不要再操作页面,键盘或鼠标都不可以,登录时间默认给了130s时间,130秒以后会自动退出,然后查看目录cookie是否保存好cookie_csdn.pkl,保存好就可以开始爬取了。

2、爬取article

爬取一旦开始就自动运行了,爬取窗口一般不能最小化,可以做其他事情的
爬取CSDN的article
默认的爬取每篇article的睡眠时间是20s以上,这边实际爬取时耗时平均是每篇 60s每个图片需要6s, --MarkDown控制是否保存markdown格式的网页内容

若是PDF看起来版式太大,调小参数就可以printop.scale,不是特殊情况一般不用调整

python crawler.py --article --csdn_person_website https://blog.csdn.net/m0_50617544?type=blog --MarkDown --links_scratch

参数详细解释

--links_scratch:重命名*.txt,然后爬取所有的article链接+标题。article\article.txt保存了链接和标题

--MarkDown:保存markdown格式的article或者回答的

--article:是否爬取article的

所以,爬取所有的article的链接,需要加--links_scratch,会重命名article.txt,然后生成article.txt,并爬取txt的网址

python crawler.py --article --MarkDown  --links_scratch --csdn_person_website https://blog.csdn.net/m0_50617544?type=blog

直接爬取当前article.txt的网址,则需要删除--links_scratch

python crawler.py --article --MarkDown --csdn_person_website https://blog.csdn.net/m0_50617544?type=blog

又发布了一篇,只爬取写的这篇

第一次可以全部爬取,等所有article都已经爬取好以后,此时若是又写了一篇或者几篇article,而且想爬取到本地,可以将article/article.txt这个档案重命名到article/article_2023_06_20.txt,然后将写好的article的网址和标题按照之前档案的格式再create一个article.txt档案,运行爬取程序就可以了的,此时需要去掉选项--links_scratch避免爬取所有链接,此时只会爬取article.txt的网址
也就是

python crawler.py --answer --MarkDown

若是过了很长很长时间,发布了很多篇,此时一篇一篇加入不太方便,可以直接将article/article.txt这个档案重命名到article/article_2023_06_20.txt,然后运行爬取程序即可,需要加入选项--links_scratch爬取所有链接,上面提到了已经爬取过的不会重复爬取,所以实际只会爬取最近写好的article。

目录

article:该目录存放article的website以及爬取到的内容

注意

1、需要较好的网速,本机网速测验是下载100Mbps,上传60Mbps,低点也可以的,不是太慢太卡就行https://www.speedtest.cn/ 2、爬取时设置了睡眠时间, 避免给CSDN服务器带来太大压力,可以日间调试好,然后深夜运行爬取人少, 给其他小伙伴更好的用户体验, 避免CSDN顺着网线过来找人,默认6s 3、若是一直停在登录页面,可能是之前保存的cookie失效了,需要再次登录保存cookie

blogs

https://www.aliyundrive.com/s/NikyVRJq8JV 阿里云分享的 提取 0h3l
爬取知乎发布的想法和文篇和回答
爬取CSDN发布的文篇
https://zoujiu.blog.csdn.net/article/details/131514422
https://zoujiu.blog.csdn.net/article/details/131521909

csdn_spider_selenium's People

Contributors

zoujiu1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.