利用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)
运行代码,然后在当前目录下生成这个文本文件,打开就可以看到结果了
不是爬出来了吗
是因为你访问次数过多,网站需要验证码。我刚试了,你可以用浏览器打开看一下。
f1 = open('fangYuan.txt', 'w', encoding='utf-8')
上面这个代码中,文件名直接换掉,不要用原来这个
f1 = open('fangYuan_new.txt', 'w', encoding='utf-8')
看下现在文件出现在哪里,点开看看是否已经有了数据。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!