09.58二手房标题
import requests
from lxml import etree
url='https://bj.58.com/ershoufang/'
headers={
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:82.0) Gecko/20100101 Firefox/82.0'
}
response=requests.get(url=url,headers=headers)
page_text=response.text
tree=etree.HTML(page_text)
name_list=tree.xpath('//ul[@class="house-list-wrap"]/li')
with open('./二手房标题.txt','w',encoding='utf-8')as fp:
for name in name_list:
fp.write(name.xpath('./div[2]/h2/a/text()')[0]+'\n')
xpath解析原理:
-1.实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中
-2.调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获
环境的安装:
-pip install lxml
如何实例化一个etree对象:from lxml import etree
-1.将本地的html文档中的源码数据加载到etree对象中:
etree.parse(filePath)
-2.可以将从互联网上获取的源码数据加载到该对象中
etree.HTML('page_text')
-xpath('xpath表达式')
- /:表示从根结点开始定位,表示的是一个层级
- //:表示多个层级。可以表示从任意位置开始定位
- 属性定位://div[@class='song'] tag[@attrName]="attrValue"
- 索引定位://div[@class="song"]/p[3] 索引是从1开始的。
- 如何取文本:
- /text() 获取的是标签中的直系的文本内容
- //text() 标签中非直系的文本内容(所有文本内容)
- 如何取属性:
-/@arrtName img/src
尽人事听天命

浙公网安备 33010602011771号