第9课解析网页中的元素-四周学会爬虫系统

Posted wall9527

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第9课解析网页中的元素-四周学会爬虫系统相关的知识,希望对你有一定的参考价值。

目标:爬取本地网页中,评分大于3的文章,并打印出来


准备:

  1.  安装Python3.0。
  2.  安装PyCharm,用于开发Python的集成环境。
  3. 安装BeautifulSoup库,学习爬虫需要的库。

BeautifulSoup:是一个可以从html和XML中读取数据的库。库也叫模块,在笨办法学Python中叫做特征,是其他程序员开发好的一些代码,可以拿来导入(import),然后调用。开发之前最好先学习一下Python的基本知识,《笨办法学python》或者是《编程小白的第一本python》都是不错的选择。

思路:

  1. 使用BeautifulSoup解析本地网页
  2. 获取所需的信息标签
  3. 精简获取的信息

代码:

 1 from bs4 import BeautifulSoup
 2 # BeautifulSoup从HTML和XML中读取数据的库
 3 
 4 info = []
 5 # 定义一个名为info的列表
 6 
 7 with open(/Users/my/Desktop/lesson9/new_index.html,r) as wb_data:
 8     Soup = BeautifulSoup(wb_data,lxml)
 9 # 在开发的过程中,许多对象在使用后,都会执行一条或者多条语句来关闭,释放等操作,这样累赘的操作就会让人忘记,with语句就可以解决这些问题。
10 # 将文件以wb_data的名字打开
11 # 打开之后再用beautifulSoup解析网页
12 
13 # 粗略的获取需要信息的标签
14 # 依次是图像、标题、描述、标签、评分
15     images = Soup.select(body > div.main-content > ul > li > img)
16     titles = Soup.select(body > div.main-content > ul > li > div.article-info > h3 > a)
17     descs = Soup.select(body > div.main-content > ul > li > div.article-info > p.description)
18     rates = Soup.select(body > div.main-content > ul > li > div.rate > span)
19     cates = Soup.select(body > div.main-content > ul > li > div.article-info > p.meta-info)
20 #   print(images,titles,descs,rates,cates,sep=‘
---------------------------------
‘)
21 
22 # 精简获取的信息,留下自己有用的东西
23 # for循环可以遍历任何序列的项目
24 for title,image,desc,rate,cate in zip(titles,images,descs,rates,cates):
25     data = {
26         title: title.get_text(),      # get_text()去除html标签,获得文本信息。
27         rate: rate.get_text(),
28         desc: desc.get_text(),
29         cate: list(cate.stripped_strings),        # stripped_strings获得一个父级标签下所有子标签的文本信息
30         image: image.get(src),      # get()获得某个标签的属性
31     }
32     info.append(data)   #append在列表末尾添加新的对象
33 
34 # 打印评分大于3的文章
35 for i in info:
36     if float(i[rate]) >3:
37         print(i[title],i[cate],i[rate])

 
遇到问题:
1. 安装BeautifulSoup库时,PyCharm提示Error错误

原因:教程中使用的是Python2,而自己机子使用的是Python3,要想安装BeautifulSoup,需要搜索bs4。具体步骤:打开PyChram,在File中找到Setting,搜索project Interpreter。然后在右侧点击“+”,搜索bs4,安装就可以看到BeautifuSoup库。

2. 输入的错误,在输入的时候多了一个空格或者少了一个空格而报错。

如在:

rates = Soup.select(body > div.main-content > ul > li > div.rate > span)

 之前加了一个空格就会报错。变成了(rate前面有一个空格)

 rates = Soup.select(body > div.main-content > ul > li > div.rate > span)

需要仔细检查,严格按照格式书写。












以上是关于第9课解析网页中的元素-四周学会爬虫系统的主要内容,如果未能解决你的问题,请参考以下文章

python网络爬虫怎么学习

知乎python 爬虫如何入门学习

python爬虫入门教程全集

python爬虫学习教程哪个好?

有没有python爬虫视频教程推荐

爬虫第二课:解析网页中的元素