python爬区csdn文章信息(原始稿)
使用python对csdn的博主文章进行爬取,期间又遇到了新的问题和旧的已经遇到过的问题。首先做一个笔记,免得以后遇到同样的问题时还得浪费时间和经历。
刚开始目的没那么明确,主要在于熟悉相关的规则及流程。采用的方式时正则表达式 + BeautifulSoup, 个人感觉正则表达时的好处时方便对数据进行过滤和筛选;BeautifulSoup则时专门用来处理xml文件的,它可以很方便的提取xml文件不同节点信息(包括节点的属性信息和参数值)。
# author : sunzd
# date : 2019/9/01
# position : beijing
from fake_useragent import UserAgent
from bs4 import BeautifulSoup
from urllib import request
from urllib import error
import re
import time
def html_request(url):
if url is None:
return
print("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 html
def 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 0
else:
return 0
if __name__ == '__main__':
name = 's2603898260'
page = 1
url = "https://blog.csdn.net/" + name + "/article/list/" + str(page) + '?'
while page < 4:
html = html_request(url)
# print(html)
next = html_parser(url, html)
page += 1
url = "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文章信息(原始稿)的更多相关文章
- [Python学习] 简单爬取CSDN下载资源信息
这是一篇Python爬取CSDN下载资源信息的样例,主要是通过urllib2获取CSDN某个人全部资源的资源URL.资源名称.下载次数.分数等信息.写这篇文章的原因是我想获取自己的资源全部的评论信息. ...
- Python 爬取美团酒店信息
事由:近期和朋友聊天,聊到黄山酒店事情,需要了解一下黄山的酒店情况,然后就想着用python 爬一些数据出来,做个参考 主要思路:通过查找,基本思路清晰,目标明确,仅仅爬取美团莫一地区的酒店信息,不过 ...
- Python爬取拉勾网招聘信息并写入Excel
这个是我想爬取的链接:http://www.lagou.com/zhaopin/Python/?labelWords=label 页面显示如下: 在Chrome浏览器中审查元素,找到对应的链接: 然后 ...
- python爬取豆瓣视频信息代码
目录 一:代码 二:结果如下(部分例子) 这里是爬取豆瓣视频信息,用pyquery库(jquery的python库). 一:代码 from urllib.request import quote ...
- Python爬取CSDN博客文章
0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.win ...
- python 爬取豆瓣书籍信息
继爬取 猫眼电影TOP100榜单 之后,再来爬一下豆瓣的书籍信息(主要是书的信息,评分及占比,评论并未爬取).原创,转载请联系我. 需求:爬取豆瓣某类型标签下的所有书籍的详细信息及评分 语言:pyth ...
- python爬取豆瓣电影信息数据
题外话+ 大家好啊,最近自己在做一个属于自己的博客网站(准备辞职回家养老了,明年再战)在家里 琐事也很多, 加上自己 一回到家就懒了(主要是家里冷啊! 广东十几度,老家几度,躲在被窝瑟瑟发抖,) 由于 ...
- python爬取梦幻西游召唤兽资质信息(不包含变异)
一.分析 1.爬取网站:https://xyq.163.com/chongwu/ 2.获取网页源码: request.get("https://xyq.163.com/chongwu/&qu ...
- python爬乌云dorps文章
有时候翻看drops 无赖drops没有一个全部文章列表,所以就有了这个想法把所有文件标题链接都爬出来这样又直观又好找感兴趣的文章 #coding=utf-8 import re import url ...
随机推荐
- Python学习的十个阶段,学完神功大成,对应一下看看你自己在哪个阶段
大家好,我是白云. 今天给大家整理了Python学习的十个阶段内容,看看你现在正处于哪个阶段,想学习的朋友也可以根据这个阶段规划学习. 阶段一:Python基础[ 初入江湖] Linux基础 目标: ...
- awk文本
目录 1.awk概念 2. 基本格式 3. 工作原理 4. 常见的内建变量(可直接用) 5. 按行输出文本 实例1:输出全部内容 实例2:输出第1到第3行的内容 实例3:输出第1行和第3行的内容,输出 ...
- 《手把手教你》系列技巧篇(十五)-java+ selenium自动化测试-元素定位大法之By xpath中卷(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
- UI:PointerEventData
原因:判断是否将一个UI物体拖放到另一个UI物体上面. 1.拖拽实现可以直接用EventTrigger组件或者自己实现拖拽事件的接口完成: 2.在OnDrag方法中借助PointEventData事件 ...
- 痞子衡嵌入式:在IAR开发环境下将关键函数重定向到RAM中执行的三种方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在IAR开发环境下将关键函数重定向到RAM中执行的三种方法. 嵌入式项目里应用程序代码正常是放在 Flash 中执行的,但有时候也需要将 ...
- 一台服务器上部署多个Terracotta的方法
在window server 2003 下,利用apache2.2.11+tomcat6+terracotta 群集不能复制session(http://forums.terracotta.org/f ...
- tomcat服务监控分析及自启
#! /bin/bash # process-monitor.sh serverName="/usr/local/apache-tomcat-7.0.72-8080" #获取进程i ...
- SpringMVC项目部署到CentOS7虚拟机问题及解决办法记录
1.前言 计划将之前在Windows系统上练手做的项目部署到云服务器上,想先在本地虚拟机上测试一下是否可行,过程中发现很多问题,特此记录.还有问题未能解决,希望后面能有思路. 突然想到是否和数据库有关 ...
- Pikahu-SQL注入模块和sqlmap经典用法
一.概述 SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的"数据"拼接到SQL语句中后,被当作SQL语句的一部分执行. 从而导 ...
- (一)Linux之目录结构
Linux之目录结构 目录 Linux之目录结构 一.概述 一.基本介绍 二.具体的目录结构(不用背,知道即可) Linux /usr目录 Linux /var 目录 一.概述 学习 Linux,不仅 ...