爬取网页搜图神器里的火影忍者的2k电脑壁纸全部爬下来存入数据库数据库字段名为序号图片
链接。
由于没有具体的网页搜图神器的链接,我假设你要爬取的是https://www.baidu.com/s?tn=baiduimage&word=%E7%81%AB%E5%BD%B1%E5%BF%8D%E8%80%85%E8%AF%B4%E7%94%BB+%E8%87%AA%E7%94%B1%E8%AE%BE%E8%AE%A1。
以下是Python代码实现:
import requests
from bs4 import BeautifulSoup
import re
import os
import pymysql
# 爬取的网址
url = "https://www.baidu.com/s?tn=baiduimage&word=%E7%81%AB%E5%BD%B1%E5%BF%8D%E8%80%85%E8%AF%B4%E7%94%BB+%E8%87%AA%E7%94%B1%E8%AE%BE%E8%AE%A1"
# 请求头
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.3"}
# 发送请求
response = requests.get(url, headers=headers)
# 解析网页
soup = BeautifulSoup(response.text, "html.parser")
# 获取所有图片链接
img_tags = soup.find_all("img", class_="main_img")
# 连接数据库
conn = pymysql.connect(
host="localhost",
user="root",
password="123456",
database="test",
charset="utf8"
)
# 创建游标
cursor = conn.cursor()
# 循环遍历图片链接
for i, img_tag in enumerate(img_tags):
# 获取图片链接
img_url = img_tag["src"]
# 下载图片
img_response = requests.get(img_url, headers=headers)
# 保存图片
file_path = "images/{}.jpg".format(i)
with open(file_path, "wb") as f:
f.write(img_response.content)
# 将图片链接保存到数据库
sql = "insert into images(id, url) values (%s, %s)"
cursor.execute(sql, (i, img_url))
# 提交操作
conn.commit()
# 关闭游标和数据库连接
cursor.close()
conn.close()
代码解释:
- 首先定义了要爬取的网址和请求头。
- 发送请求并解析网页,获取所有图片链接。
- 连接MySQL数据库,创建游标。
- 循环遍历图片链接,下载图片并保存到本地文件夹中,将图片链接保存到数据库中。
- 最后关闭游标和数据库连接。
需要注意的是,代码中的数据库信息需要根据实际情况修改。此外,如果要使用本代码,需要提前创建一个名为“images”的表,包含两个字段:id和url。其中id为整数类型,作为图片的序号;url为字符串类型,保存图片链接
原文地址: https://www.cveoy.top/t/topic/gSnj 著作权归作者所有。请勿转载和采集!