xpath方法请求出来列表为空,不知道是不是代码编写的问题

利用xpath方法抓取的列表为空
需求:抓取房源的标题,地址,户型,价格
网址:https://changde.58.com/xinfang/?PGTID=0d100000-0036-8bd3-6159-08ef6dac6e41&ClickID=4
有谁可帮我看一下 嘛

# 需求:爬取58同城上常德新房的房源信息
import requests
from lxml import etree
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0'
}
# 抓取页面源码数据
url = 'https://changde.58.com/xinfang/?PGTID=0d100000-0036-8511-a0ff-530399c9a35a&ClickID=2'
page_text = requests.get(url=url, headers=headers).text
# 数据解析
tree = etree.HTML(page_text)
div_list = tree.xpath('//div[@class="key-list imglazyload"]/div')

f1 = open('./changDe fangYuan.txt', 'w', encoding='utf-8')
for div in div_list:
    # 局部解析
    items_name = div.xpath('./div/a[1]/span/text()')[0]
    address = div.xpath('./div/a[2]/span/text()')[0]
    HuXing = div.xpath('./div/a[3]/span/text()')[0]
    price = div.xpath('./a[2]/p/span/text()')[0]
    f1.write(items_name+address+HuXing+price)

print('打印成功!')


将f1 = open('./changDe fangYuan.txt', 'w', encoding='utf-8')
写成:
f1 = open('fangYuan.txt', 'w', encoding='utf-8')
将f1.write(items_name+address+HuXing+price)改成:
f1.write(items_name+'\n'+address+'\n'+HuXing+'\n'+price)
运行代码,然后在当前目录下生成这个文本文件,打开就可以看到结果了

img

img

img

不是爬出来了吗

是因为你访问次数过多,网站需要验证码。我刚试了,你可以用浏览器打开看一下。


f1 = open('fangYuan.txt', 'w', encoding='utf-8')

上面这个代码中,文件名直接换掉,不要用原来这个


f1 = open('fangYuan_new.txt', 'w', encoding='utf-8')

看下现在文件出现在哪里,点开看看是否已经有了数据。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632