1.随便打开一个百度贴吧按F12查看源代码
2. 我们找到图片所在的代码段,分析这个标题的HTML代码
正则表达式:
<img class="BDE_Image" src="http://tiebapic.baidu.com/forum/w%3D580/sign=5e2baca502ce36d3a20483380af23a24/2739184c510fd9f9d2b40516322dd42a2934a46b.jpg" size="422124" changedsize="true" width="560" height="556">
<img class="BDE_Image" src="http://tiebapic.baidu.com/forum/w%3D580/sign=5e2baca502ce36d3a20483380af23a24/2739184c510fd9f9d2b40516322dd42a2934a46b.jpg" size="422124" changedsize="true" width="560" height="556">
提取<img>标签中的内容,同时还要指定这个class确定唯一
3.编写爬虫脚本
import requests
from bs4 import BeautifulSoup
import os
UrlsImage=[] #存放所有图片的URL
def getImage(url):
#获取网页源代码
headers = {'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'}
html = requests.get(url,headers=headers) #用get方法发送请求,返回 response保存到变量html
#html.encoding = 'utf-8'
soup = BeautifulSoup(html.text, 'lxml') #用BeautifulSoup库解析网页源代码
for a in soup.find_all('img', class_='BDE_Image'): #在网页源代码中找到所有图片地址
UrlsImage.append(a['src']) #将每张图片的地址添加到列表中
def saveImage():
b=os.getcwd() #获取当前目录
os.makedirs(b+'\\'+imageFolder) #在当前目录下创建文件夹
c=b+'\\'+imageFolder+'\\' #获取创建好之后的文件夹目录
for a,eve_url in enumerate(UrlsImage):
pic = requests.get(eve_url).content #因为图片是以二进制存储的,所以这些要用 content
with open(c+eve_url.split('/')[-1] + '.jpg', 'wb') as f: #将图片保存到文件根目录
f.write(pic) #写入图片
def main():
for a in range(3):
try:
getImage(imageURL + str(a))
except:
pass
saveImage()
if __name__ == '__main__':
imageURL = input("输入图片地址(多页下载请删除当前页码):")
imageFolder=input("请输入 文件夹名称:")
pagination=input("请输入 页码数:")
main()
4.输入爬取的百度贴吧的URL:
5.爬取完成