工程承包网站有哪些潍坊百度关键词优化
文章目录
- 一、环境说明
- 二、基本思路
- 三、代码
一、环境说明
python 版本:3.10
MySQL版本:8
二、基本思路
首先,我们需要查看网页源代码
通过html源码,确定我们要抓取的内容所在标签的特点
然后,利用BeautifulSoup进行html代码解析
在逐一获取我们需要的标签即可。
最后,将图片下载到本地,基本信息保存到MySQL
三、代码
import os # 同来创造文件夹
import requests # 发送请求和得到响应用的
from bs4 import BeautifulSoup # 用来解析回应的数据
import MySQLdbdef GetHtmlText(url): # 得到响应数据try:r = requests.get(url) # 发送urlr.raise_for_status() # 判断是否成功r.encoding = 'utf-8' # 设置编码格式return r.text # 返回他的响应数据except:return ''def main(pages):filepath = os.getcwd() + '\myImgs\\' # 创造一个文件夹if not os.path.exists(filepath): # 如果没有则创造os.makedirs(filepath)#创建数据库连接db = MySQLdb.connect('127.0.0.1', 'root', 'root', port=3306, db='test')cur = db.cursor()pagenum = pages # 要爬取的页数fnum = 1img_url = ""context = ""local_path = ""for page in range(pages):url = "https://www.百度.com/news/?page=" + str(page+1) # 第几页print(url)html = GetHtmlText(url) # 获取网页html源码# r = requests.get(url)soup = BeautifulSoup(html, 'html.parser', from_encoding='utf-8') # html.parser是解析器contexts = soup.find_all(name='div', attrs={'class': ['card card--standard js-card']}) # 根据class值,获取对应的div# print(contexts[0].text) # 获取图片地址for item in contexts:# detail_url = item.get('href')print(item.text)context = item.text #读取标签内容images = item.find_all(name='img', attrs={'width': ['368']})for img in images:imgurl = img.get('src') #获取图片url地址print(imgurl)img_url = imgurlimgcontent = requests.get(imgurl).content # 得到这个url下的内容content,应该是二进制的filename = str(fnum) + '.jpg'local_path = filepath + filenamewith open(filepath + filename, 'wb') as wf: # 二进制形式写入数据wf.write(imgcontent)sql = "INSERT INTO `test`.`py_news` (`img_url`, `context`, `local_path`) VALUES ( '" + img_url + "', '" + context + "', '" + local_path + "');"cur.execute(sql) # 引号中为SQL语句fnum += 1# 关闭数据库连接cur.close()db.close()if __name__ == '__main__':main(1)