首先介绍:什么是爬虫,通俗易懂的解释就是,你可以在网页上获取你想要的信息
现在信息爆炸的时代,信息量很大,同时垃圾信息也变得很多,如何通过爬虫简练的提取我们所需要的内容就显得很重要,毕竟,没必要浪费时间去看那些对自己不感兴趣的内容。
URL:统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。(简单点来说就是一个资源在网上的位置,用一种统一的格式去描述这个位置)
大体上,爬虫就是获取要访问的URL,然后对URL进行访问,获取HTML页面,然后对这个页面进行信息的抽取。
Python给我们提供了很多框架:例如Scrapy,BeautifuSoup等框架
这次我主要介绍的是BeautifulSoup框架
使用BeautifulSoup
可以看到我们使用了BeautifulSoup可以直接.标签,获取相应的内容
然后正文了:
from bs4 import BeautifulSoup
import requests
import re
import os
import time
from urllib.request import urlretrieve
#伪装头部,让网站误以为是浏览器访问
header={
'upgrade-insecure-requests':'1',
'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36'
}
# 斗图吧连接
url="https://www.doutula.com/photo/list/"
# 访问url
response = requests.get(url,headers=header)
# 使用BeautifulSoup封装我们获取到的网页
html = BeautifulSoup(response.content)
print(html)
看img对应的class
通过这个我们可以获取所有图片
from bs4 import BeautifulSoup
import requests
import re
import os
import time
from urllib.request import urlretrieve
#伪装头部,让网站误以为是浏览器访问
header={
'upgrade-insecure-requests':'1',
'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36'
}
# 斗图吧连接
url="https://www.doutula.com/photo/list/"
# 访问url
response = requests.get(url,headers=header)
# 使用BeautifulSoup封装我们获取到的网页
html = BeautifulSoup(response.content)
#find_all获取所有满足条件的内容
#第一个是标签,第二个是所对应的参数,参数是字典的形式
img_list = html.find_all('img',attrs={'class':'img-responsive lazy image_dta'})
list = []
for img in img_list:
print(img)
如果我们要抽取其中的连接,其实也很简单:
要多导入一个模块,urlretrieve
from bs4 import BeautifulSoup
import requests
import re
import os
import time
from urllib.request import urlretrieve
#伪装头部,让网站误以为是浏览器访问
header={
'upgrade-insecure-requests':'1',
'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36'
}
# 斗图吧连接
url="https://www.doutula.com/photo/list/"
# 访问url
response = requests.get(url,headers=header)
# 使用BeautifulSoup封装我们获取到的网页
html = BeautifulSoup(response.content)
#find_all获取所有满足条件的内容
#第一个是标签,第二个是所对应的参数,参数是字典的形式
img_list = html.find_all('img',attrs={'class':'img-responsive lazy image_dta'})
list = []
for img in img_list:
list.append(img['data-original'])
#进行下载
index = 0
for i in list:
#捕获异常,假设下载不了的就跳过,进行下一张的下载
try:
#设置下载的路径
path = os.path.join('images',str(index)+".jpg")
#下载
urlretrieve(i,filename=path)
index = index+1
time.sleep(1)
except Exception as e:
index = index + 1
continue
一个最简单的爬虫小程序就这样完成了