当前位置: 首页 > news >正文

企业管理咨询网站模板uniapp开发者中心

企业管理咨询网站模板,uniapp开发者中心,超低价的锦州网站建设,2017网站设计一. 内容简介 python爬取网站数据,作为后端数据 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3代码 链接: 三.主要流程 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(url=url, headers=headers)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-features=AutomationControlled")driver = webdriver.Chrome(options=options)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 = r"C:\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, headers=headers)# 检查请求是否成功if response.status_code == 200:# 解析 JSON 数据data = response.json()return data
api_url = 'https://cxcy.upln.cn/provincial/match/competition/queryOngoing?_t=1699950536&year=2023&code=2&column=createTime&order=desc&field=id,&pageNo=1&pageSize=10'
data = apiRequset(api_url)
json_data = json.dumps(data, indent=4)# 将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 = r"C:\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[@class='img-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':index+1,'status':1,'create_time':current_time,'update_time':current_time,}imgs.append(img)json_data = json.dumps(imgs, indent=4)# 将JSON数据写入文件
with open("data.json", "w") as json_file:json_file.write(json_data)
print("JSON数据已保存到文件")

在这里插入图片描述

3.4 读取json,将数据存入对应的数据库中

先下载驱动

! pip install mysql-connector-python
import json
import mysql.connector# 读取JSON文件
with open('ceshi.json', 'r') as file:data = json.load(file)# 连接到MySQL数据库
conn = mysql.connector.connect(host='localhost',port=3306,  # MySQL默认端口号user='root',password='1234',database='ceshi'
)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.yayakq.cn/news/826286/

相关文章:

  • 外贸网站产品关键词深圳网站设计合理刻
  • 网站开发设计工程师博客网站seo
  • 网站作弊温州网牌电线
  • 自网站EXCel数据导入怎么做脑叶公司
  • 高效网站推广费用门户设计方案
  • 网站如何做微信推广方案设计进入秦皇岛最新规定
  • 东莞怎么建设网站公司有什么做任务的网站吗
  • 网站建设信息在哪儿发布广东省自然资源厅招聘
  • 北京建网站开发网络营销是什么工作内容
  • 磁县网站设计公司屏蔽wordpress google
  • 网站推广引流最快方法swiper wordpress主题
  • 做网站推广维护需要学些什么网站 别名
  • 郑州制作网站个人网站可以不备案吗
  • 有没有可以做游戏的网站吗山东省建设工程注册中心网站
  • 网站怎么挣钱wordpress防站
  • 合肥建站费用做网站嘉兴
  • 电商网站开发 文献综述陕西省西安市网站建设公司
  • 网站建设新闻发布注意什么wordpress 教程网
  • 上海网站建设公司 珍岛转运公司网站建设
  • wordpress 爬虫济南做seo排名
  • 门户营销型网站搭建asp.net答辩做网站
  • 做网站的销售怎么样wordpress网校
  • 电子网站建设实训wordpress会员注册怎样更改
  • 设计最简单的企业网站正大建设集团股份有限公司网站
  • 苏州做公司网站wordpress 引用图片
  • 网站设计公司推荐奇点网络站点搜索
  • 西安网站建设工作室wordpress没有水印
  • 网站建设和维护公司成都装修公司哪家好
  • 网站建设规划图网络营销专业是学什么的
  • 墓地网站建设价格邯郸市口碑网络技术有限公司