xpath语法和lxml模块(数据提取)----python爬虫学习

xpath语法:
参考w3cschool的语法格式  https://www.w3school.com.cn/xpath/index.asp
 
lxml库安装:
pip install lxml
 
在安装lxml会遇到网络不好导致安装失败的问题,就只能等待了,看人品。
 
库基本的使用方式
1.把网页数据丢入etree.HTML(数据),解析生成一个对象本文称html
2.使用 对象.xpth(xpath语法)进行对数据的提取,对提取出的数据可能需要解码通过 decode(解码方式)进行解码 以上方法即可提取出想要的数据了
 
补充:xpath语法中使用text()可获取该标签下对应的文字信息,使用string()可以提取全部
 
实例
爬取我博客的所有随笔标题:
#获取博客的源码
#我有个习惯,在爬取子站时先获取一次主站的cookie
import lxml,requests
url_get_cookies='https://www.cnblogs.com/'
#养成个好习惯,headers头每次爬虫都写上
header={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'}
get_cookie=requests.session()
get_cookie.get(url=url_get_cookies,headers=header)
#以上步骤已经获取完了主站的cookie
url_myblog='https://www.cnblogs.com/lcyzblog/'
html_blog=get_cookie.get(url_myblog)
#这一步获取了我主页的源码
html_blog=html_blog.text
from lxml import etree
myblog_html=etree.HTML(html_blog)
get_myblog_title="//div[@class='postTitle']/a/text()"
myblog_html.xpath(get_myblog_title)
last_get=myblog_html.xpath(get_myblog_title)
for title_myblog in last_get:
	print(title_myblog)
 
网页源码分析:可以看见我们的每个随笔的标题都是被放在一个class为post-Title的div下 的a标签中

  

猜你喜欢

转载自www.cnblogs.com/lcyzblog/p/11275188.html