问题改进:
1:无法保存jpg格式,将图片格式换成了PNG。
2:被阻止访问
#爬虫实战
import requests,urllib.request
from bs4 import BeautifulSoup
import os
import datetime,time
import random
#获取当前年月日并创建以年月日命名的文件夹
today=datetime.date.today()
if not os.path.exists(f'{today}'):
os.makedirs(f'{today}') #如果没有这个path则直接创建
#爬虫部分
#头文件
header={"User-Agent":"Mozila/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36"} #利用header模拟是从谷歌浏览器发出请求
name=1
for i in range(2,45):
url='https://www.gamersky.com/ent/202009/1319344_{}.shtml'.format(i)
r=requests.get(url,headers=header)
r.encoding = r.apparent_encoding#解决中文乱码问题
html=r.text
soup=BeautifulSoup(html,'lxml')#lxml是解析器
## print(soup.p)#soup.p只能获得第一个p元素
## print(soup.find_all('p'))#可以获取所有p元素
list=soup.find_all('a') #图片地址在Mid2L_con类的P标签下的a标签里
for li in list:
address=li.get('href')
if '.jpg' in str(address):
## print(address) #已经获得URL,接下来是保存图片
b=address[53:]#修改图片访问地址
## urllib.request.urlretrieve(address, f'./{today}/{str(name)}.png')#这种方法还没试
pic=requests.get(b,headers=header)
f=open(f'./{today}/{str(name)}.png','ab')
f.write(pic.content)
f.close()
time.sleep(random.randint(1,5))#睡吧睡吧乖宝宝
name +=1