专栏首页武军超python专栏11月10日python爬虫分析网页的模块lxml和Beautiful Soup

11月10日python爬虫分析网页的模块lxml和Beautiful Soup

unicode是字符集,不是编码方式

ajax返回的是json字符串,json字符是类字典的形式,里面是键值对

format自动排列 # 定义文件存储的位置,原始的定义要改变的地方是定义在字符串中的 fileName = 'g:/spider/poetry/poetry{0}.html' f = open(fileName.format(z), "wb")

for 循环的结果如果在外边打印的话只能打印最后一个结果,如果想打印全部的话必须要把print放在for循环里面

使用requests获得网页对象html之后,如果乱码: 1. html.encoding = 'gb2312'  # 将下载结果用gb2312编码 print(html.text)            # 然后以文本的形式打印出来

2. html = r.content   # 先将下载的返回结果转换成二进制    html =str(html, "gb2312")   # 然后转换成以gb2312编码字符串    print(html) lxml和Beautiful Soup都是用于解析网页的第三方模块, lxml比Beautiful Soup解析速度更快,并且lxml是用C语言编写的,Python 标准库中自带了 xml 模块,但是性能不够好,而且缺乏一些人性化的 API, 相比之下,第三方库 lxml 是用 Cython 实现的,而且增加了很多实用的功能,可谓爬虫处理网页数据的一件利器  lxml 大部分功能都存在 lxml.etree中    Beautiful Soup的用法:  1.先转换成soup对象,然后可以用find(只返回一个)和find_all(返回所有)进行匹配 from bs4 import  BeautifulSoup broken_html ='<ul class=country> <li>Area</li> <li>Population</ul>' soup = BeautifulSoup(broken_html,'html.parser') fixed_html = soup.prettify()

print(fixed_html)

ul = soup.find('ul', attrs={'class': 'country'}) print(ul) print(ul.find('li'))  # 只返回第一个 print(ul.find_all('li'))  lxml的用法:  网页下载下来以后是个字符串的形式,如果是一个破损的代码,可以用一下的方式补全:  import lxml.html broben_html = "<ul class=country> <li>Area <li>Population</ul>" tree = lxml.html.fromstring(broben_html) fixed_html = lxml.html.tostring(tree,pretty_print=True) print(fixed_html) 使用etree.fromstring(str)构造一个 etree._ElementTree对象 使用 etree.tostring(t)返回一个字符串

lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高

lxml支持两种查找信息方式:xpath和css选择器

XPath,全称XML Path   Language,即XML路径语言,它是一门在XML文档中查找信息的语言,它最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索 

XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。 /text() 是用来读取内容的 XPath 实在太强大了,在定位元素方面绝对是秒杀 CSS 选择器

css选择器: 基本和CSS选择器的用法一样 div p 是选择<div>元素内的所有<p>元素 div > p 是选择<div>元素下的直接子元素p

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 12行Python暴力爬《黑豹》豆瓣短评

    草长莺飞,转眼间又到了三月“爬虫月”。 这时往往不少童鞋写论文苦于数据获取艰难,辗转走上爬虫之路; 许多分析师做舆情监控或者竞品分析的时候,也常常使用到爬虫。

    数据科学社区
  • python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例

    简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。官方解释如下: Beautiful Soup提供一些简单的、pyth...

    砸漏
  • 12行Python暴力爬《黑豹》豆瓣短评

    本文采用requests + Xpath,爬取豆瓣电影《黑豹》部分短评内容。话不多说,代码先上:

    IT派
  • 12行Python暴力爬《黑豹》豆瓣短评

    小小科
  • Python 爬虫:爬取小说花千骨

    知识就像碎布,记得“缝一缝”,你才能华丽丽地亮相。 1.Beautiful Soup 1.Beautifulsoup 简介 此次实战从网上爬取小说,需要使用到B...

    小小科
  • 100天搞定机器学习|Day21 Beautiful Soup

    网络爬虫,是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。通俗来说就是模拟用户在浏览器上的操作,从特定网站,自动提取对自己有价值的信息。主要通过查找域...

    统计学家
  • Python爬虫入门教程——爬取自己的博

    互联网时代里,网络爬虫是一种高效地信息采集利器,可以快速准确地获取网上的各种数据资源。本文使用Python库requests、Beautiful Soup爬取C...

    py3study
  • Python爬取链家网数据:新房楼盘价格分析

    本文将详细讲解利用python爬虫收集了链家网800多条公开数据并作简单分析。数据真实性有待考查,本文仅作为数据分析入门者参考。 安装环境 Window 10 ...

    机器学习AI算法工程
  • Python爬虫之图片爬取

    爬虫简介:(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人。网络爬虫始于一张被称作种子的统一资源地址(URL...

    K同学啊
  • Python3网络爬虫(七):使用Beautiful Soup爬取小说

    运行平台: Windows Python版本: Python3.x IDE: Sublime text3 一、Beautiful Soup简介    ...

    Jack_Cui
  • python爬虫入门(三)XPATH和BeautifulSoup4

     XML和XPATH 用正则处理HTML文档很麻烦,我们可以先将 HTML文件 转换成 XML文档,然后用 XPath 查找 HTML 节点或元素。 XML 指...

    zhang_derek
  • Python网络爬虫入门篇

    学习者需要预先掌握Python的数字类型、字符串类型、分支、循环、函数、列表类型、字典类型、文件和第三方库使用等概念和编程方法。

    用户1679793
  • 爬虫之链式调用、beautifulsoup、IP代理池、验证码破解

    Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Be...

    GH
  • Python总结-----爬虫

    爬虫是我最喜欢干的事了,把别人的东西拿到自己的手里有一种江洋大盗的快感,后来爬多了。。。 这只是一种技术

    GuangdongQi
  • 使用 Beautiful Soup 解析网页内容

    安装Beautiful Soup Beautiful Soup是一个Python的HTML解析框架,我们可以利用它方便的处理HTML和XML文档。Beautif...

    乐百川
  • 一起学爬虫——使用Beautiful S

    要想学好爬虫,必须把基础打扎实,之前发布了两篇文章,分别是使用XPATH和requests爬取网页,今天的文章是学习Beautiful Soup并通过一个例子来...

    py3study
  • Python爬虫 | 爬虫基础入门看这一篇就够了

    其实,一开始学python的时候,我是冲着数据处理分析去了,那个pandas什么的。后来,发现爬虫挺好玩,可以解决纯手工采集网上数据的繁琐问题,比如我用的比较多...

    可以叫我才哥
  • python3网络爬虫(抓取文字信息)

    青木
  • [原创]-数据可视化实战项目

    Request Headers 里面是我们用浏览器访问网站的信息,有了信息后就能模拟浏览器访问这也是为了防止网站封禁IP,不过糗事百科一般是不会封IP的,也是公...

    DataScience

扫码关注云+社区

领取腾讯云代金券