python如何从mysql数据库中获取物流公司名称和快递单号,然后拿物流公司名称去百度查询,查出来的页面中第一个查询结果中输入刚刚查出来的快递单号进行查询,然后对查出来的结果进行截图,并保存到C盘以订单号创建的文件夹内去百度
时间: 2024-03-30 21:35:27 浏览: 67
这个问题的解决方案比较复杂,需要涉及到多个步骤和模块,所以我将以下步骤分解:
1. 连接数据库,执行 SQL 查询,获取物流公司名称和快递单号
``` python
import mysql.connector
# 连接数据库
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
# 创建游标对象
mycursor = mydb.cursor()
# 执行 SQL 查询
mycursor.execute("SELECT company_name, tracking_number FROM logistics")
# 获取所有结果
results = mycursor.fetchall()
```
2. 使用 Selenium 和 ChromeDriver 打开百度搜索页面,输入物流公司名称和快递单号进行查询
``` python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# 创建 ChromeDriver 对象
driver = webdriver.Chrome()
# 打开百度搜索页面
driver.get("https://www.baidu.com")
# 找到搜索框
search_box = driver.find_element_by_name("wd")
# 循环遍历每个物流信息
for result in results:
# 输入物流公司名称和快递单号进行搜索
search_box.clear()
search_box.send_keys(result[0] + " " + result[1])
search_box.send_keys(Keys.RETURN)
# 等待搜索结果加载完成
driver.implicitly_wait(10)
# 打开第一个查询结果
first_result = driver.find_element_by_css_selector("h3.t a")
first_result.click()
# 等待页面加载完成
driver.implicitly_wait(10)
# 对查出来的结果进行截图,并保存到 C 盘以订单号创建的文件夹内
order_folder = "C:\\" + result[1]
driver.save_screenshot(order_folder + "\\" + result[1] + ".png")
```
在这个步骤中,我们使用 Selenium 和 ChromeDriver 打开了百度搜索页面,并循环遍历了每个物流信息。对于每个物流信息,我们将物流公司名称和快递单号输入到搜索框中进行搜索。然后,我们打开了第一个查询结果,并使用 save_screenshot() 方法对查出来的结果进行截图,并将截图保存到 C 盘以订单号创建的文件夹内。
需要注意的是,由于这个程序需要使用到 ChromeDriver,所以你需要先安装 Chrome 浏览器,并下载对应版本的 ChromeDriver。
最后,完整代码如下:
``` python
import os
import mysql.connector
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# 连接数据库
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
# 创建游标对象
mycursor = mydb.cursor()
# 执行 SQL 查询
mycursor.execute("SELECT company_name, tracking_number FROM logistics")
# 获取所有结果
results = mycursor.fetchall()
# 创建 ChromeDriver 对象
driver = webdriver.Chrome()
# 打开百度搜索页面
driver.get("https://www.baidu.com")
# 找到搜索框
search_box = driver.find_element_by_name("wd")
# 循环遍历每个物流信息
for result in results:
# 输入物流公司名称和快递单号进行搜索
search_box.clear()
search_box.send_keys(result[0] + " " + result[1])
search_box.send_keys(Keys.RETURN)
# 等待搜索结果加载完成
driver.implicitly_wait(10)
# 打开第一个查询结果
first_result = driver.find_element_by_css_selector("h3.t a")
first_result.click()
# 等待页面加载完成
driver.implicitly_wait(10)
# 对查出来的结果进行截图,并保存到 C 盘以订单号创建的文件夹内
order_folder = "C:\\" + result[1]
if not os.path.exists(order_folder):
os.makedirs(order_folder)
driver.save_screenshot(order_folder + "\\" + result[1] + ".png")
# 关闭浏览器窗口
driver.quit()
```
阅读全文