我是刚接触爬虫,我跟着教程的操作,教程获取到了所有图片,而我只获取了一个,
我大概的认为我的问题在 div_list 这一行,可是图片地址在14层div嵌套下,还有好几个div标签都都是全部照片的div标签
import requests
from lxml import etree
def piliangmn():
# 1.先获取源代码
url = "https://www.kanxiaojiejie.tk/"
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36'}
r = requests.get(url, headers=headers).text
# r是源代码
# 2.analyze 源代码,获取所有图片地址
ret = etree.HTML(r) # 先转换成xml类型化
# 获取任意位置的html标签下面的body标签下面div[4]标签下面div标签
div_list=ret.xpath('//html/body/div[4]/div')
i=1
for div in div_list:#每一次遍历的类型都xml类型
# 获取div下面的任意位置的img标签
src=div.xpath('.//img/@src')[0]# “.”代表当前
print(src)
if __name__ == '__main__':
piliangmn()
div_list=ret.xpath('//*[@class="gridsoul-posts gridsoul-posts-grid"]//img/@src')
src=[]
for i in div_list:
src.append(str(i))
获取div_list的时候,使用相对路径也就是//,否则只会找到一层,修改后的代码:
div_list = ret.xpath('//html/body/div[4]//div')
有帮助的话,请点采纳~