小白爬虫 Day2

爬取单个页面小说信息

今日爬取信息网站为纵横中文网,爬取小说的一些基本信息,小说网站页面如下:
在这里插入图片描述
我们选择小说名称,小说类型和字数这三个信息进行爬取。
新增环境pyquery,直接pip install pyquery即可。
为什么用pyquery呢,因为简单…

1.爬取小说名

首先分析网页HTML的结构,在小说名处右键点击检查可以看到网页html代码,如图
在这里插入图片描述
可以看到每个li标签内的bookname属性就是小说名字,那现在目标就很明确了,爬取所有li的bookname!

from pyquery import PyQuery as pq
doc=pq(url='http://www.zongheng.com/rank/details.html?rt=1&d=0&r=')
lis=doc('li').items()#找到所有的li标签
for li in lis:       #遍历每个li节点
    print(li.attr('bookname'))#输出每个li节点bookname属性的内容

运行结果:
在这里插入图片描述
上面的几个None是一些没用的li标签,之后的便都是小说名字啦。

2.爬取小说类别

首先分析网页结构,类别在哪呢,同样在类别处右键检查
在这里插入图片描述
可以发现,类别都在span标签下,class=rankpage_list2的title中,ok,目标又清晰了,写代码:

from pyquery import PyQuery as pq
doc=pq(url='http://www.zongheng.com/rank/details.html?rt=1&d=0&r=')
# lis=doc('li').items()
# for li in lis:
#     print(li.attr('bookname'))
sp=doc('.rankpage_list2')#找到所有的class=rankpage_list2的标签
for s in sp.items():
    print(s.attr('title'))#这时title的内容就是小说类别

运行结果如下图:
在这里插入图片描述
嘻嘻,又成功了

3.爬取小说字数

同样的,先分析网页结构,找一找字数在哪里
在这里插入图片描述
在span标签,class=rankpage_list5的文字中,ok,目标清晰,写代码吧

from pyquery import PyQuery as pq
doc=pq(url='http://www.zongheng.com/rank/details.html?rt=1&d=0&r=')
#小说名
# lis=doc('li').items()
# for li in lis:
#     print(li.attr('bookname'))
#小说类别
# sp=doc('.rankpage_list2')
# for s in sp.items():
#     print(s.attr('title'))
#小说字数
sp=doc('.rankpage_list5')
for s in sp.items():
    print(s.text())#不是属性值,不需要用到attr

运行结果:

在这里插入图片描述
成功!

4.合并到一起

from pyquery import PyQuery as pq
doc=pq(url='http://www.zongheng.com/rank/details.html?rt=1&d=0&r=')
#小说名
lis=doc('li').items()
name=[]
for li in lis:
    if li.attr('bookname'):
        name.append(li.attr('bookname'))
#小说类别
type=[]
sp=doc('.rankpage_list2')
for s in sp.items():
    type.append(s.attr('title'))
num=[]
sp=doc('.rankpage_list5')
for s in sp.items():
    num.append(s.text())
for i in range(30):
    print('name:'+name[i]+',type:'+type[i]+','+'word_num:'+num[i])

运行!
在这里插入图片描述
哈哈,成功啦,这一页的小说信息就这么被我们爬取下来了,很开心。

5.总结

今天的爬取目标可以说是爬虫中最简单的了,网页没有js的动态生成,所需的信息都在html中,网页结构清晰,然而我还是看了好久的书,写了一遍又一遍的代码才成功运行,也算是小有收货吧,算是有了一个好的开始。

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页