文章目录
一、需要用到的模块
二、开始写代码
1.创建保存图片的文件夹
2.创建请求头
3.代码主体
4.创建循环
完整代码
一、需要用到的模块
import requests
import os
from bs4 import BeautifulSoup
还需要有一个 lxml库 但不需要导入 BeautifulSoup 在 beautifulsoup4 的包下
二、开始写代码
1.创建保存图片的文件夹
if not os.path.isdir("./img/"): #如果当前目录下没有img文件夹
os.mkdir("./img/") #创建img文件夹
2.创建请求头
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0'
}
那么为什么要创建请求头呢,因为在网站访问的过程中,有大部分网站会对当前请求做验证,来判断当前的请求是否合法(不是使用浏览器来获取网站数据的话会被认为非法请求)。如果不添加请求头的话,可能会出现当前网站没有访问权限。
提示:请求头的内容可用Burpsuite来抓取
3.代码主体
def pa(num):
url = 'https://fabiaoqing.com/biaoqing/lists/page/'+str(num)+'.html' #构造url
rp = requests.get(url,headers).text #请求url 用文本返回
soup = BeautifulSoup(rp,'lxml') #构建soup
img_list = soup.find_all('img',class_='ui image lazy') #筛选所有img标签 条件为class=xxx
for img in img_list:
img_url = img['data-original'] #获取这个属性的内容
img_title = img['title']
print(img_url,img_title)
try:
with open('img/'+img_title + os.path.splitext(img_url)[-1],'wb') as f: #图片文件
image = requests.get(img_url).content #请求img_url 以二进制返回
f.write(image)
except:
pass
4.创建循环
for i in range(1,201): #网站有多少页就设置多少
pa(i)
# 将每一页的图片都抓下来
完整代码
import requests #请求模块
import os
from bs4 import BeautifulSoup #抓取网站内容
if not os.path.isdir("./img/"):
os.mkdir("./img/")
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0'}
#创造头
def pa(num):
url = 'https://fabiaoqing.com/biaoqing/lists/page/'+str(num)+'.html' #构造url
rp = requests.get(url,headers).text #请求url 用文本返回
soup = BeautifulSoup(rp,'lxml') #构建soup
img_list = soup.find_all('img',class_='ui image lazy') #筛选所有img标签 条件为class=xxx
for img in img_list:
img_url = img['data-original'] #获取这个属性的内容
img_title = img['title']
print(img_url,img_title)
try:
with open('img/'+img_title + os.path.splitext(img_url)[-1],'wb') as f:
image = requests.get(img_url).content #请求img_url 以二进制返回
f.write(image)
except:
pass
for i in range(1,201):
pa(i)
www.juhe.cn