使用的技术点:
1.request:发送请求,从服务器获取数据
爬虫需要自己的一定摸索,看懂css结构,我也是初学爬虫
import requests
import parsel
import os
#爬虫第一件事就是发送请求给服务器
resp=requests.get("https://www.kanxiaojiejie.com/")
# print(resp.text)
html=resp.text
# 解析数据
selector=parsel.Selector(html)
# 图片链接
url_list=selector.css('.entry-title > a ::attr(href)').getall()
# 使用f12查看网页的css
# 使用左上角的箭头
# 点击图片的标题,在右边的elemnets里面使用copy -->copy selector 就可以看见张图片的地址
title_list=selector.css('.entry-title>a ::text').getall()
# 图片标题
for zip_data in zip(url_list,title_list):
url=zip_data[0] #链接
title=zip_data[1] #标题
# 向所有网页发送链接
# print(url)
resp_1=requests.get(url)
# 获取数据
data_htm1=resp_1.text
# 解析数据
selector_1=parsel.Selector(data_htm1)
img_url_list=selector_1.css('div>p>img::attr(src)').getall()
if not os.path.exists('../img/'+title):
os.mkdir('../img/'+title)
for img_url in img_url_list:
# print(img_url)
# 向图片发送请求
# 获取二进制数据
img_data=requests.get(img_url).content
# 保存数据,图片名称
img_name=img_url.split('/')[-1]
# 名称使用分隔符
with open(f'../img/{title}/{img_name}',mode='wb') as f:
f.write(img_data)
print(img_name,'爬取成功')
img的地址根据自己调整,还有一些网站也需要自己调整