使用python对csdn的博主文章进行爬取,期间又遇到了新的问题和旧的已经遇到过的问题。首先做一个笔记,免得以后遇到同样的问题时还得浪费时间和经历。

刚开始目的没那么明确,主要在于熟悉相关的规则及流程。采用的方式时正则表达式 + BeautifulSoup, 个人感觉正则表达时的好处时方便对数据进行过滤和筛选;BeautifulSoup则时专门用来处理xml文件的,它可以很方便的提取xml文件不同节点信息(包括节点的属性信息和参数值)。


# author   : sunzd
# date     : 2019/9/01
# position : beijingfrom fake_useragent import UserAgent
from bs4 import BeautifulSoup
from urllib import request
from urllib import error
import re
import timedef html_request(url):if url is None:returnprint("download html is :{0}".format(url))#如果url包含中文,则需要进行编码#模拟浏览器行为headers = {'UserAgent': str(UserAgent().random)}req = request.Request(url, headers=headers)try:html = request.urlopen(req).read().decode('utf-8')except error.URLError as e:if hasattr(e, "code"):print(e.code)if hasattr(e, "reason"):print(e.reason)return None#print(html)return htmldef html_parser(url, html):if url is None or html is None:return# pattern = '<main>(.+?)</main>'   #因为<main>后紧跟的时‘\n’因此需要忽略掉使用模式修正符re.S使'.'可以匹配任意字符# articles = re.compile(pattern, re.S).findall(html)# articles = articles[0]pattern_art = '<div class="article-item-box csdn-tracking-statistics" data(.+?)</div>'# print(articles)articles = re.compile(pattern_art, re.S).findall(html.replace('\n', ''))print(articles.__len__())for article in articles:soup = BeautifulSoup(article, 'html.parser')title = soup.find('a', attrs={'target': '_blank'})# print(title)print("文章题目:{0}\n文章类型:{1}".format(title.text.replace(' ', '').replace("原", "").replace("转", ""), title.span.text))print("文章链接:{0}".format(title.attrs['href']))infors = soup.find('div', attrs={'class': 'info-box d-flex align-content-center'})# for infor in infors.p.next_siblings:   next_siblings : 因为不包括自己,因此会把第一个p节点信息去掉。for infor in infors.children:if infor == ' ':               # ‘ ’空格也会识别为他的孩子,因此需要过滤掉continue# print("======{0}".format(infor))if infor.span:                # 只需要<span >节点的信息print("{0}".format(infor.span.text))pattern_next = '<li class="js-page-next js-page-action ui-pager ui-pager-disabled">'next = re.compile(pattern_next).findall(html)# print(html)# print("是否为最后一页:{0}----{1}".format(len(next), next))if len(next) == 0:return 0else:return 0if __name__ == '__main__':name = 's2603898260'page = 1url = "https://blog.csdn.net/" + name + "/article/list/" + str(page) + '?'while page < 4:html = html_request(url)# print(html)next = html_parser(url, html)page += 1url = "https://blog.csdn.net/" + name + "/article/list/" + str(page) + '?'# if next != 0:#    page += 1#    url = "https://blog.csdn.net/" + name + "/article/list/" + str(page) + '?'#else:#    print("finished")#    url = None'''
https://blog.csdn.net/s2603898260/article/details/100067370
'''

爬去的结果信息仅仅做了打印处理。后续添加存储到文件的处理。

爬去的结果如下:

C:\ProgramData\Anaconda3\python.exe D:/pycharm/workspace/spiderAnalysis/AI_pie/sunzd_csdn.py
download html is :https://blog.csdn.net/s2603898260/article/list/1?
20文章题目:Python中正则表达式简介
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/100067370
2019-08-25 21:48:03
阅读数 19
评论数 0 文章题目:select、poll、epoll之间的区别
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/97536708
2019-07-27 18:13:12
阅读数 22
评论数 0 文章题目:如何实现自定义sk_buff数据包并提交协议栈
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/92019175
2019-06-15 00:00:20
阅读数 54
评论数 0 文章题目:DHCP协议及其交互过程
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/90547537
2019-05-25 15:52:23
阅读数 31
评论数 0 文章题目:交换机之三层交换理
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/90489608
2019-05-23 22:44:45
阅读数 53
评论数 0 文章题目:交换机之vlan详解
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/90489469
2019-05-23 22:34:32
阅读数 178
评论数 0 文章题目:指针与引用,值传递与地址传递的关系
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/90417121
2019-05-21 22:43:20
阅读数 30
评论数 0 文章题目:数据结构(三):双向循环链表的函数实现
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/90315926
2019-05-18 15:49:57
阅读数 13
评论数 0 文章题目:数据结构(二):线性表之链式存储函数实现
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/90314798
2019-05-18 14:52:34
阅读数 10
评论数 0 文章题目:数据结构(一):线性表的顺序存储和链式存储
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/90312257
2019-05-18 13:20:02
阅读数 18
评论数 0 文章题目:Linuxproc文件系统小记
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/89681905
2019-04-29 20:24:09
阅读数 15
评论数 0 文章题目:第09课:GDB实用调试技巧(下)
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/86683723
2019-03-23 14:39:03
阅读数 7
评论数 0 文章题目:第08课:GDB实用调试技巧(上)
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/86683713
2019-03-23 14:38:58
阅读数 7
评论数 0 文章题目:第07课:GDB常用命令详解(下)
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/86683699
2019-03-23 14:38:53
阅读数 13
评论数 0 文章题目:第06课:GDB常用命令详解(中)
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/86683582
2019-03-23 14:38:47
阅读数 44
评论数 0 文章题目:第05课:GDB常用命令详解(上)
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/86683576
2019-03-23 14:38:19
阅读数 15
评论数 0 文章题目:第04课:使用VS管理开源项目
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/86683568
2019-03-23 14:38:12
阅读数 20
评论数 0 文章题目:第三课:GDB常用的调试命令概览
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/86683558
2019-03-23 14:38:02
阅读数 15
评论数 0 文章题目:第二课:启动GDB调试
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/86683543
2019-03-23 14:37:46
阅读数 23
评论数 0 文章题目:第一课:调试信息和调试理
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/86683528
2019-03-23 14:37:38
阅读数 25
评论数 0
download html is :https://blog.csdn.net/s2603898260/article/list/2?
20文章题目:GDB调试:Linux开发人员必备技能
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/86683504
2019-03-23 14:37:24
阅读数 14
评论数 0 文章题目:python3爬虫五大模块之五:信息采集器
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/88760206
2019-03-23 14:34:48
阅读数 101
评论数 0 文章题目:python3爬虫五大模块之四:网页解析器
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/88759540
2019-03-23 14:00:55
阅读数 291
评论数 0 文章题目:python3爬虫五大模块之三:网页下载器
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/88758555
2019-03-23 12:17:19
阅读数 100
评论数 0 文章题目:python3爬虫五大模块之二:URL管理器
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/88758180
2019-03-23 11:59:04
阅读数 140
评论数 0 文章题目:python3爬虫五大模块之一:爬虫调度器
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/88757023
2019-03-23 11:36:28
阅读数 310
评论数 0 文章题目:Windos下通过Wpcap抓包实现两个网卡桥接
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/85067018
2018-12-18 16:43:02
阅读数 259
评论数 0 文章题目:Linux始套接字抓取底层报文
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/85020006
2018-12-16 00:08:09
阅读数 865
评论数 0 文章题目:Linux网络编程:始套接字简介
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/85019718
2018-12-15 23:18:45
阅读数 46
评论数 0 文章题目:mac、ip、udp头解析
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/85019482
2018-12-15 22:48:53
阅读数 46
评论数 0 文章题目:IP头详解
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/85019438
2018-12-15 22:43:39
阅读数 44
评论数 0 文章题目:Linux网卡驱动sk_buff内核源码随笔
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/83448735
2018-10-27 19:33:41
阅读数 238
评论数 1 文章题目:图像处理之Canny边缘检测(一)
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/80724816
2018-08-27 23:01:11
阅读数 86
评论数 0 文章题目:针对Autocad2014第二次安装不上的问题
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/81463225
2018-08-06 23:21:40
阅读数 5699
评论数 0 文章题目:matlab纹理映射之地球
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/81463073
2018-08-06 23:07:03
阅读数 365
评论数 0 文章题目:SNMP协议之序言
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/81041731
2018-07-14 11:40:17
阅读数 111
评论数 1 文章题目:uboot命令简介
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/80747431
2018-06-20 16:04:05
阅读数 100
评论数 0 文章题目:tornado2.2安装教程
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/79519506
2018-03-11 20:30:30
阅读数 1349
评论数 2 文章题目:tar命令简介
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/79435842
2018-03-04 12:37:54
阅读数 52
评论数 0 文章题目:find命令简介
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/79435828
2018-03-04 12:35:15
阅读数 71
评论数 0
download html is :https://blog.csdn.net/s2603898260/article/list/3?
7文章题目:文件的描述符和重定向
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/79435815
2018-03-04 12:31:58
阅读数 72
评论数 0 文章题目:containerof()函数简介
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/79371024
2018-02-25 21:15:45
阅读数 15950
评论数 12 文章题目:vim编辑器设置
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/79354248
2018-02-25 19:20:50
阅读数 193
评论数 0 文章题目:ubantu下载源详细目录
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/79354253
2018-02-25 12:57:29
阅读数 285
评论数 0 文章题目:sqlite数据库的基本用法及C语言的API接口简介
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/78480137
2017-11-08 16:20:27
阅读数 185
评论数 0 文章题目:C语言中volatile、register、const、static、extern、auto关键字的作用
文章类型:转
文章链接:https://blog.csdn.net/s2603898260/article/details/78476555
2017-11-08 11:16:20
阅读数 284
评论数 0 文章题目:linux网络编程(一)
文章类型:原
文章链接:https://blog.csdn.net/s2603898260/article/details/78475106
2017-11-08 09:42:21
阅读数 155
评论数 0 Process finished with exit code 0

python爬区csdn文章信息(原始稿)相关推荐

  1. copy outerHTML、python爬取csdn文章、一键打包个人csdn文章保存到本地

    文章目录 1copy outerHTML复制网站源码法 1.1复制源码 1.2 遇到的问题 2 python爬取CSDN博客文章(保存为html,txt,md) 2.1 安装依赖 2.2 完整代码 3 ...

  2. [Python学习] 简单爬取CSDN下载资源信息

            这是一篇Python爬取CSDN下载资源信息的例子,主要是通过urllib2获取CSDN某个人所有资源的资源URL.资源名称.下载次数.分数等信息:写这篇文章的原因是我想获取自己的资源 ...

  3. 简单爬取CSDN下载资源信息

    这是一篇Python爬取CSDN下载资源信息的例子,主要是通过urllib2获取CSND某个人所有资源的资源URL.资源名称.分数等信息:写这篇文章的原因是我想获取自已的资源所有的评论信息,但是由于评 ...

  4. 使用Python爬取CSDN历史博客文章列表,并生成目录

    使用Python爬取CSDN历史博客文章列表,并生成目录 这篇博客将介绍如何使用Python爬取CSDN历史博客文章列表,并生成目录. 2020年 2020年04月 cv2.threshold() 阈 ...

  5. python爬取12306列车信息自动抢票并自动识别验证码(二)selenium登录验证篇

    项目前言 自学python差不多有一年半载了,这两天利用在甲方公司搬砖空闲之余写了个小项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时 ...

  6. python爬取微博用户信息(六)—— 完整代码

    本节为爬取微博用户信息的完整代码,以及项目结构. 感兴趣的小伙伴可以收藏哦! 另外,关于本代码的效果展示,以及教程,点击以下链接即可. python爬取微博用户信息(一)-- 效果展示 python爬 ...

  7. python爬取微博用户信息(四)—— 爬取用户信息的功能函数

    这一节,将会将 MicroBlog.py 文件中的函数介绍一下. 感兴趣的小伙伴可以收藏哦! 另外,关于本代码的效果展示,以及教程,点击以下链接即可. python爬取微博用户信息(一)-- 效果展示 ...

  8. python爬取微博用户信息(三)—— 创建MicroBlog类实例

    这一节,主要讲述 main.py文件,该文件创建了一个MicroBlog类,MicroBlog类中包含一些爬取微博内容的函数. 以及简单介绍traceback的用法. 感兴趣的小伙伴可以收藏哦! 另外 ...

  9. python爬取微博用户信息(一)—— 效果展示

    有时,我们想要了解一个人,一般会通过ta的微博.朋友圈以及朋友的看法去了解. 特别是面对自己喜欢的明星,我们常常会浏览ta的微博,了解ta的动态. 那么,在大数据时代,数据已经成为了不可缺少的一部分, ...

最新文章

  1. 1012 The Best Rank
  2. MySQL免安装版配置教程
  3. 另一个ExcelHelper
  4. Java Web开发技术教程入门-JavaBean组件与Servlet
  5. 腾讯视频app官方下载_腾讯视频怎么快进
  6. 广船国际:“红帆”远航
  7. linux低级格式化工具下载,U盘低格工具(Rmprepusb)
  8. z世代消费力白皮书_LSPACE丨Z世代虽穷但买的态度你真的懂吗
  9. 数电技术基础大恶补04:CMOS门电路
  10. mysql基础入门之cmd登录等简单操作
  11. R语言实现单因素方差分析
  12. python-igraph基本用法(一)
  13. 可以删除电脑文件的c语言程序,win7电脑c盘都有哪些文件可以删除
  14. How to set the Default Page in ASP.NET?
  15. 2023年1月伊凡梳理如何快速安装git并且配置本地gitee账号权限方便拉代码
  16. CPU占用过高问题排查
  17. AlignedReID: Surpassing Human-Level Performance in Person Re-Identification
  18. 巧用 Prometheus 监控 Kubernetes 集群所有组件的证书
  19. 行业沙龙第六期丨数字化采购寻源,实现阳光采购
  20. 数据库学习记录806

热门文章

  1. 关于接入层交换机启用STP或是Loopback-detection
  2. 傲梅分区助手 去掉使用码
  3. DT时代,企业打造数据中台的三大原则
  4. DT时代,小数据时代的未来发展
  5. Waifu2x 算法黑科技二次元图片无损放大
  6. 【电气专业知识问答】问:蓄电池为何必须经常处于浮充电状态?浮充电应注意什么?
  7. 重装系统win10安装教程
  8. 华为在线编程系列-字符串分割
  9. 浅谈猪场的信息化管理
  10. 透视拼多多财报 股价下跌不仅仅因黄峥辞职那么简单