Python实战爬虫系统学习笔记一:解析网页中的元素

学习python编写爬虫第一天,学会如何解析本地网页

第1步:使用用Beautiful Soup解析网页

Soup = BeautifulSoup(wb_data,'lxml')

第2步:描述爬取信息的位置

这里使用浏览器开发者工具,选取元素,右键->Copy selector

Copy selector

可得到"body > div.main-content > ul > li > img"
代码如下:

images = Soup.select('body > div.main-content > ul > li > img')

第3步:从标签中获取所需要的信息

from bs4 import BeautifulSoupwith open('/Users/new_index.html','r') as wb_data:    Soup = BeautifulSoup(wb_data,'lxml')    images = Soup.select('body > div.main-content > ul > li > img')    titles = Soup.select('body > div.main-content > ul > li > div.article-info > h3 > a')    descs = Soup.select('body > div.main-content > ul > li > div.article-info > p.description')    rates = Soup.select('body > div.main-content > ul > li > div.rate > span')    cates = Soup.select('body > div.main-content > ul > li > div.article-info > p.meta-info')    #print(images,titles,descs,rates,cates,sep='\n-------------\n')info = []for image,title,desc,rate,cate in zip(images,titles,descs,rates,cates):    data = {        'title':title.get_text(),        'rate' :rate.get_text(),        'desc':desc.get_text(),        'cate': list(cate.stripped_strings),        'image': image.get('src')    }    info.append(data)for i in info:    if float(i['rate'])>3:        print(i['title'],i['cate'])

总结:

  • Mac中使用pip(注意python的版本,python3使用pip3)和easy_install安装第三方库
  • selector 和Xpath两种描述元素路径的方式
  • lxml是python中比较流行的解析库,用来处理XML和HTML,第一次使用需要安装,否则会报错:
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?

运行下面的代码安装lxml

pip3 install lxml
  • 在Copy selector会拷贝到某一个结点的子元素nth-child,如
ul > li:nth-child(2) 

在python语言中需要改成它能理解的方式nth-of-type。
编译器报错提示为

Only the following pseudo-classes are implemented: nth-of-type.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本次学习目的:学会筛选所需要的信息。 解析网页的步骤: 1.使用Beautiful解析网页Soup = Beaut...
    LineWay阅读 5,465评论 0 0
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,214评论 17 410
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,261评论 25 709
  • 现在在写东西时,我得先定义这个概念。 “潜规则”:看不见的、明文没有规定的、约定成俗的、但是却又是广泛认同、实际起...
    Zearboy阅读 1,488评论 0 0
  • 我的女朋友是捡回来的。 准确地说,是我堂哥抛给我的。一开始,她是一块烫手的山芋,后来才慢慢一口一口地舔进肚子,湿润...
    Lambert_style阅读 5,092评论 0 0