#以下是浏览器显示网页代码 (划红线处为目标图片地址)
url_page = "https://bj.58.com/ershoufang"
header = {"User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/9 2.0.4515.131 Safari/537.36'}
param = {
"PGTID":"0d100000-0000-19bd-1e7f-96527dd81c6b",
"ClickID":"2"
}
page_text = requests.get(url=url_page,params=param,headers=header).text
tree = etree.HTML(page_text)
name_list = tree.xpath("//div//h3/@title")
img_list = tree.xpath("//div[@class='property-image']/img/@src")
print(img_list)
#问题详述
可以看到网页源码图片地址显示为
<img alt="" src="https://pic1.ajkimg.com/display/58ajk/eb7962d9a8bb28c4a7655e27fdc5264e/640x420c.jpg?t=1%22
在爬虫爬取的地址显示为
<img alt="" src="https://pages.anjukestatic.com/usersite/touch/img/comm/nopic_list2.png"
点击地址显示的图片也是无效图片
请问问题可能出在哪里?谢谢
因为这个网页中图片是通过js代码动态更新的。
requests只能获取网页的静态源代码,静态源代码中只是默认的图片,动态更新的内容取不到。
对于动态更新的内容要用selenium 来爬取。
或者是通过F12控制台分析页面数据加载的链接,找到真正json数据的地址进行爬取。
在页面上点击右键,右键菜单中选 "查看网页源代码"。
直接找json数据就行