Python爬虫Xpath案例

# 解析58二手房相关数据
import requests
from lxml import etree

url = 'https://fs.58.com/fschencun/ershoufang/?PGTID=0d30000c-000d-ff4c-d5f0-638b9a965fc3&ClickID=1'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
}

page_text = requests.get(url=url, headers=headers).text
tree = etree.HTML(page_text)
li_list = tree.xpath('//ul[@class="house-list-wrap"]/li')
#输出所有li标签数据
#print(li_list)
#输出一个li标签下的数据
#print(li_list[1])
fp = open('58.csv','w',encoding='utf-8')
for li in li_list:
    #li.xpath对应的数据源为li_list里面已经获取的数据,非全页面数据
    #加上.(点)是表示局部数据内容,如果不加依旧为整个源码
    #房子名称,部分标签提取
    title = li.xpath('./div[2]/h2/a/text()')[0] #[0]表示li.xpath返回的是一个列表,列表里有一个列表元素字符串
    print(title)
    #房子价格,总价、每平方米价格一起提取
    price = li.xpath('./div[3]//text()')
    price = ''.join(price)
    fp.write(title+":"+price+'\n')
fp.close()
print('over')