欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习、问答、求职,一站式搞定!
对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。
博客地址:http://blog.sina.com.cn/s/articlelist_1191258123_0_1.html
爬第一页博文
#-*-coding:utf-
8
-*-
import re#导入正则表达式模块
import urllib#导入urllib库 url=
'
http://blog.sina.com.cn/s/articlelist_1191258123_0_1.html
'#第一页博文地址
response =
urllib.urlopen(url) #通过urllib库中的urlopen()函数来访问这个url #这里省略了构建request请求这一步
html = response.read()
#读取出来存在html这个变量当中,到这里也就完成了html的爬取
#print(html)
#这里可以将爬取到的html输出到终端 pattern = re.compile(
'
(.*?)
'
,re.S)#通过正则表达式来匹配 blog_address =
re.findall(pattern,html)#通过findall函数从爬取到的html中找出所要的内容
for i
in
blog_address: print(i[
])#输出第一个分组的内容即博客博文地址 print(i[
1
])#输出第二个分组的内容即博文标题
部分结果如下:
所遇到的问题:1爬取的结果多了两个,第一个和最后一个不是所要的内容?
2 输出结果的时候用print(i[0],i[1])出现乱码,这是为什么?
通过while循环来解决多页的问题
#-*
-coding:utf-
8
-*-
import re
import urllib
page=
1
while
page<=
7
:
url=
'
http://blog.sina.com.cn/s/articlelist_1191258123_0_
'
+str(page)+
'
.html
'
#url=
'
http://blog.sina.com.cn/s/articlelist_1191258123_0_1.html
'
response =
urllib.urlopen(url)
html = response.read().decode(
'
utf-8
'
)
#print(html)
pattern = re.compile(
'
(.*?)
'
,re.S)
blog_address =
re.findall(pattern,html)
print(i[
])
print(i[
1
])
page = page +
1
结果最后部分如下图:
天善学院svip包含Excel BI、Python爬虫案例、Python机器学习、Python数据科学家、大数据、数据分析报告、数据分析师体系、深度学习、R语言案例10套课程火爆报名中,欢迎大家关注 www.hellobi.com/svip
转载请保留以下内容:
本文来源自天善社区邬家栋老师的博客(公众号)。
原文链接:https://ask.hellobi.com/blog/wujiadong/9392
发表评论