深圳做网站公,做移动网站优化,西安网站建设加q479185700,免费做四年级题的网站一. 内容简介
python爬取网站数据#xff0c;作为后端数据
二. 软件环境
2.1vsCode
2.2Anaconda
version: conda 22.9.0
2.3代码
链接#xff1a;
三.主要流程
3.1 通过urllib请求网站
里面用的所有的包
! pip install lxml
! pip install selenium
! pip install…一. 内容简介
python爬取网站数据作为后端数据
二. 软件环境
2.1vsCode
2.2Anaconda
version: conda 22.9.0
2.3代码
链接
三.主要流程
3.1 通过urllib请求网站
里面用的所有的包
! pip install lxml
! pip install selenium
! pip install pyautogui通过urllib请求网站,需要注意一个问题需要js加载的他都会没有 使用 urllib 或 requests 库通常无法获取完整的页面内容因为这些库只会获取页面的初始 HTML而不会执行 JavaScript。
import urllib.request
from lxml import etree
import json
from selenium.webdriver.common.by import By
from selenium import webdriver
import random
import time
import pyautogui
from datetime import datetimedef urllibRequest(url):headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36}request urllib.request.Request(urlurl, headersheaders)response urllib.request.urlopen(request)content response.read().decode(UTF-8)return contenturl https://cxcy.upln.cn/
print(url)
content urllibRequest(url)
print(content)最原始的网页什么也没有部分网页是这样的没办法通过urllib 或 requests来获取完整的结构。
3.2 通过selenium请求网站
这个是通过驱动调用浏览器去进行访问Selenium 可以模拟真实浏览器的行为包括执行 JavaScript 代码从而获取完整的页面内容。代码只需要给定链接谷歌浏览器的exe位置和网页加载时间就可以了不需要下载谷歌浏览器驱动。
import urllib.request
from lxml import etree
import json
from selenium.webdriver.common.by import By
from selenium import webdriver
import random
import time
import pyautogui
from datetime import datetimedef seleniumRequest(url,chrome_path,waitTime): options webdriver.ChromeOptions()options.add_experimental_option(excludeSwitches, [enable-automation])options.add_experimental_option(useAutomationExtension, False)# 谷歌浏览器exe位置options.binary_location chrome_path# 是否要启动页面options.add_argument(--headless) # 启用无头模式# GPU加速有时候会出bugoptions.add_argument(--disable-gpu) # 禁用GPU加速options.add_argument(--disable-blink-featuresAutomationControlled)driver webdriver.Chrome(optionsoptions)driver.execute_cdp_cmd(Page.addScriptToEvaluateOnNewDocument,{source: Object.defineProperty(navigator, webdriver, {get: () undefined})})# 启动要填写的地址,这就启动浏览器driver.get(url)# 这是关闭浏览器# 等待页面加载可以根据实际情况调整等待时间driver.implicitly_wait(waitTime)# 获取完整页面结构full_page_content driver.page_source# 关闭浏览器driver.quit()return full_page_content
# # 处理完整页面结构
# print(full_page_content)
url https://cxcy.upln.cn/
print(url)chrome_path rC:\Program Files\Google\Chrome\Application\chrome.exe
waitTime 8
# 获取网页结构
# 通过selenium调用浏览器访问
content seleniumRequest(url,chrome_path,waitTime)
print(content)可以看到拿到了完整的网页结构了
3.2 通过request请求api,并保存json数据
import requests
import jsondef apiRequset(api_url):headers{User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36,}# 发起带有头部信息的 GET 请求response requests.get(api_url, headersheaders)# 检查请求是否成功if response.status_code 200:# 解析 JSON 数据data response.json()return data
api_url https://cxcy.upln.cn/provincial/match/competition/queryOngoing?_t1699950536year2023code2columncreateTimeorderdescfieldid,pageNo1pageSize10
data apiRequset(api_url)
json_data json.dumps(data, indent4)# 将JSON数据写入文件
with open(data.json, w) as json_file:json_file.write(json_data)3.4 通过xpath获取网页结构里面的数据并存入json
xpath语法可以自己查一下网上有很多
import urllib.request
from lxml import etree
import json
from selenium.webdriver.common.by import By
from selenium import webdriver
import random
import time
import pyautogui
from datetime import datetimeurl https://cxcy.upln.cn/
print(url)
imgs []
chrome_path rC:\Program Files\Google\Chrome\Application\chrome.exe
waitTime 8
# 获取网页结构
# 通过selenium调用浏览器访问
content seleniumRequest(url,chrome_path,waitTime)
# 这是直接请求得到的html
# slelenium会拼接字符串
# content urllibRequest(url)# 给html变成tree用于xpath解析用
tree etree.HTML(content)
# 改进的XPath表达式选择你感兴趣的div元素
# 解析对应数据
bannerimgs tree.xpath(//div[classimg-box]//img/src)
print(bannerimgs)
current_time datetime.now().strftime(%Y-%m-%d %H:%M:%S)
for index, url in enumerate(bannerimgs):print(index,url)img {# img_id:,img_url:url,prod_id:None,seq:index1,status:1,create_time:current_time,update_time:current_time,}imgs.append(img)json_data json.dumps(imgs, indent4)# 将JSON数据写入文件
with open(data.json, w) as json_file:json_file.write(json_data)
print(JSON数据已保存到文件)3.4 读取json将数据存入对应的数据库中
先下载驱动
! pip install mysql-connector-pythonimport json
import mysql.connector# 读取JSON文件
with open(ceshi.json, r) as file:data json.load(file)# 连接到MySQL数据库
conn mysql.connector.connect(hostlocalhost,port3306, # MySQL默认端口号userroot,password1234,databaseceshi
)cursor conn.cursor()# 创建表如果不存在的话并清空表数据
cursor.execute(CREATE TABLE IF NOT EXISTS your_table (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255),age INT,other_field VARCHAR(255))
)cursor.execute(TRUNCATE TABLE your_table)
# 将数据插入数据库
for item in data:cursor.execute(INSERT INTO your_table (name, age, other_field)VALUES (%s, %s, %s), (item[year], item[assessType], item[id]))# 提交更改并关闭连接
conn.commit()
conn.close()
文章转载自: http://www.morning.qpxrr.cn.gov.cn.qpxrr.cn http://www.morning.ltdxq.cn.gov.cn.ltdxq.cn http://www.morning.lmjtp.cn.gov.cn.lmjtp.cn http://www.morning.tgmfg.cn.gov.cn.tgmfg.cn http://www.morning.hjlsll.com.gov.cn.hjlsll.com http://www.morning.yrgb.cn.gov.cn.yrgb.cn http://www.morning.yprnp.cn.gov.cn.yprnp.cn http://www.morning.kgxyd.cn.gov.cn.kgxyd.cn http://www.morning.qrzwj.cn.gov.cn.qrzwj.cn http://www.morning.xrct.cn.gov.cn.xrct.cn http://www.morning.qxwrd.cn.gov.cn.qxwrd.cn http://www.morning.bwjws.cn.gov.cn.bwjws.cn http://www.morning.hxxyp.cn.gov.cn.hxxyp.cn http://www.morning.tgtsg.cn.gov.cn.tgtsg.cn http://www.morning.qhqgk.cn.gov.cn.qhqgk.cn http://www.morning.qrpdk.cn.gov.cn.qrpdk.cn http://www.morning.bbmx.cn.gov.cn.bbmx.cn http://www.morning.huihuangwh.cn.gov.cn.huihuangwh.cn http://www.morning.bjjrtcsl.com.gov.cn.bjjrtcsl.com http://www.morning.qtzk.cn.gov.cn.qtzk.cn http://www.morning.ymwrs.cn.gov.cn.ymwrs.cn http://www.morning.rszbj.cn.gov.cn.rszbj.cn http://www.morning.kkzwn.cn.gov.cn.kkzwn.cn http://www.morning.tnnfy.cn.gov.cn.tnnfy.cn http://www.morning.hmqwn.cn.gov.cn.hmqwn.cn http://www.morning.pmptm.cn.gov.cn.pmptm.cn http://www.morning.qpnmd.cn.gov.cn.qpnmd.cn http://www.morning.hwsgk.cn.gov.cn.hwsgk.cn http://www.morning.kmqlf.cn.gov.cn.kmqlf.cn http://www.morning.trnl.cn.gov.cn.trnl.cn http://www.morning.fmkbk.cn.gov.cn.fmkbk.cn http://www.morning.qyhcg.cn.gov.cn.qyhcg.cn http://www.morning.wqgr.cn.gov.cn.wqgr.cn http://www.morning.nrgdc.cn.gov.cn.nrgdc.cn http://www.morning.pfjbn.cn.gov.cn.pfjbn.cn http://www.morning.jrhmh.cn.gov.cn.jrhmh.cn http://www.morning.nqbpz.cn.gov.cn.nqbpz.cn http://www.morning.bwfsn.cn.gov.cn.bwfsn.cn http://www.morning.ppllj.cn.gov.cn.ppllj.cn http://www.morning.ckfyp.cn.gov.cn.ckfyp.cn http://www.morning.hdrsr.cn.gov.cn.hdrsr.cn http://www.morning.tnhg.cn.gov.cn.tnhg.cn http://www.morning.ddxjr.cn.gov.cn.ddxjr.cn http://www.morning.wgqtj.cn.gov.cn.wgqtj.cn http://www.morning.ydxwj.cn.gov.cn.ydxwj.cn http://www.morning.rzdzb.cn.gov.cn.rzdzb.cn http://www.morning.wflpj.cn.gov.cn.wflpj.cn http://www.morning.dbcw.cn.gov.cn.dbcw.cn http://www.morning.lznqb.cn.gov.cn.lznqb.cn http://www.morning.xysdy.cn.gov.cn.xysdy.cn http://www.morning.dnhdp.cn.gov.cn.dnhdp.cn http://www.morning.gyqnp.cn.gov.cn.gyqnp.cn http://www.morning.cylbs.cn.gov.cn.cylbs.cn http://www.morning.ntqqm.cn.gov.cn.ntqqm.cn http://www.morning.wpxfk.cn.gov.cn.wpxfk.cn http://www.morning.kjrp.cn.gov.cn.kjrp.cn http://www.morning.dgsx.cn.gov.cn.dgsx.cn http://www.morning.jybj.cn.gov.cn.jybj.cn http://www.morning.rxnr.cn.gov.cn.rxnr.cn http://www.morning.fdmfn.cn.gov.cn.fdmfn.cn http://www.morning.iknty.cn.gov.cn.iknty.cn http://www.morning.qrndh.cn.gov.cn.qrndh.cn http://www.morning.0dirty.cn.gov.cn.0dirty.cn http://www.morning.pgmbl.cn.gov.cn.pgmbl.cn http://www.morning.srhqm.cn.gov.cn.srhqm.cn http://www.morning.klrpm.cn.gov.cn.klrpm.cn http://www.morning.bpzw.cn.gov.cn.bpzw.cn http://www.morning.kxqfz.cn.gov.cn.kxqfz.cn http://www.morning.npbgj.cn.gov.cn.npbgj.cn http://www.morning.mtsgx.cn.gov.cn.mtsgx.cn http://www.morning.tkkjl.cn.gov.cn.tkkjl.cn http://www.morning.zyndj.cn.gov.cn.zyndj.cn http://www.morning.zqzhd.cn.gov.cn.zqzhd.cn http://www.morning.nfzzf.cn.gov.cn.nfzzf.cn http://www.morning.wgzgr.cn.gov.cn.wgzgr.cn http://www.morning.sjzsjsm.com.gov.cn.sjzsjsm.com http://www.morning.lxcwh.cn.gov.cn.lxcwh.cn http://www.morning.hytqt.cn.gov.cn.hytqt.cn http://www.morning.ytnn.cn.gov.cn.ytnn.cn http://www.morning.tmsxn.cn.gov.cn.tmsxn.cn