这里是Python制作爬虫抓取美女图的完整攻略。
首先,我们需要了解一下爬虫的基本原理。爬虫就是通过程序自动抓取网页上的信息,并将其保存到本地或者进行进一步的处理。在Python中,我们可以通过使用第三方库(比如requests、BeautifulSoup等)来实现爬虫功能。
接下来,我们详细介绍一下Python制作爬虫抓取美女图的完整攻略:
步骤一:分析网站
在爬虫之前,我们需要对目标网站进行分析,了解其网页结构、URL规律、反爬虫机制等信息。
以抓取糗事百科中的美女图为例,我们可以先打开糗事百科的网址(https://www.qiushibaike.com/imgrank/),并在Chrome浏览器中按下F12键打开开发者工具。通过开发者工具的Elements选项可以查看网页的结构,通过Network选项可以查看每个请求的URL。
步骤二:编写爬虫程序
在分析网站之后,我们就可以开始编写Python爬虫程序了。下面是一个简单的程序示例:
import requests
from bs4 import BeautifulSoup
url = 'https://www.qiushibaike.com/imgrank/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
imgs = soup.find_all('img', class_='illustration')
for img in imgs:
img_url = 'https:' + img['src']
img_name = img['alt'] + '.jpg'
with open(img_name, 'wb') as f:
f.write(requests.get(img_url).content)
print('Successfully download ' + img_name)
这个程序主要的功能就是通过requests模块访问目标网站,并通过BeautifulSoup模块解析网页代码。然后从代码中筛选出带有class为illustration的img标签,从中提取出图片的URL,然后下载到本地。
具体而言,我们通过requests库发送一个get请求,获取目标网站的HTML文本,然后将HTML文本传递给BeautifulSoup构造函数进行解析。在这个过程中,我们还要设置请求头,模拟浏览器访问,避免被反爬虫机制拦截。
接下来,通过find_all方法筛选出HTML文本中所有class为illustration的img标签,并通过循环遍历其属性,提取出图片的URL和名称。然后,通过requests模块调用get方法,下载图片到本地。
这里有一个完整的实例代码,可以直接复制粘贴运行:
import requests
from bs4 import BeautifulSoup
base_url = 'https://www.qiushibaike.com/imgrank/page/%d/'
for i in range(1, 10):
url = base_url % i
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
imgs = soup.find_all('img', class_='illustration')
for img in imgs:
img_url = 'https:' + img['src']
img_name = img['alt'] + '.jpg'
with open(img_name, 'wb') as f:
f.write(requests.get(img_url).content)
print('Successfully download ' + img_name)
在这个实例中,我们通过一个循环遍历多个页面,将图片下载到本地并保存为jpg文件。
示例一:抓取QT老师的美女图
接下来,我们以抓取QT老师的美女图为例,进行实例演示。
QT老师的个人网站为:https://www.qttc.net/,我们可以在其首页点击美女图进行查看,然后进行右键检查。
在开发者工具中,我们可以查看到HTML代码中包含class为books的元素,而其中又包含a标签和img标签,因此我们可以通过BeautifulSoup抓取这些信息。
下面是Python代码示例:
import requests
from bs4 import BeautifulSoup
url = 'https://www.qttc.net/index.php?m=&c=Index&a=pics'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
books = soup.find_all('div', class_='books')
for book in books:
a = book.find('a')
img_url = a.img['src']
img_name = img_url.split('/')[-1]
with open(img_name, 'wb') as f:
f.write(requests.get(img_url).content)
print('Successfully download ' + img_name)
在这个代码示例中,我们通过requests库和BeautifulSoup库获取了QT老师的个人网站页面,然后从HTML代码中筛选出class为books的元素,并循环获取其子元素。最终,我们通过requests库下载图片到本地。
示例二:抓取妹子图网站的图片
接下来,我们以抓取妹子图网站(http://www.meizitu.com/)的图片为例,进行实例演示。
在妹子图网站中,我们可以通过点击分类标签进入不同的图库,然后获取到该图库下的所有图片。在这里,我们以美女图库为例。
在美女图库中,我们可以通过右键检查获取到图片的HTML代码。而在HTML代码中,我们可以发现图片的URL都包含有http://mm.chinasareview.com/前缀,因此我们可以通过BeautifulSoup抓取这些信息。
下面是Python代码示例:
import requests
from bs4 import BeautifulSoup
url = 'http://www.meizitu.com/a/list_1_1.html'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
lis = soup.find('ul', class_='wp-list clearfix').find_all('li')
for li in lis:
a = li.find('a')
if a is not None:
img_url = a.img['data-original']
img_name = img_url.split('/')[-1]
with open(img_name, 'wb') as f:
f.write(requests.get(img_url).content)
print('Successfully download ' + img_name)
在这个代码示例中,我们通过requests库和BeautifulSoup库获取了妹子图网站页面的HTML文本,然后从HTML代码中筛选出class为wp-list clearfix的元素,并循环获取其子元素。最终,我们通过requests库下载图片到本地。
以上就是Python制作爬虫抓取美女图的完整攻略,希望对您有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python制作爬虫抓取美女图 - Python技术站