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标签中