下载
登录/ 注册
主页
论坛
视频
热股
可转债
基金
下载
下载

用Bing Ai辅助写了一段模爬虫代码

23-06-26 00:46 530次浏览
阿尔宙斯
+关注
博主要求身份验证
登录用户ID:
第一次写成功一段能用的代码。分享下。其他模块也试过,都爬不出来,只能全程模仿人工操作。
效果是导出来上面的表格。可以辅助复盘下。

准备:
需要装的模块有三个。
python -m pip install selenium
python -m pip install pandas
python -m pip install xlsxwriter
需要谷歌浏览器和对应的驱动chromedriver.exe。版本号一定要差不多。

代码如下:账号密码修改成自己的,还有路径修改下就可以运行了。

# 导入所需的库
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import pandas as pd
import time

# 定义要爬取的网页链接
url = "https://xuangubao.cn/dingpan"

# 创建一个浏览器对象。单引号里面的内容是谷歌浏览器驱动所在的位置路径。这是我的路径。
service = Service(executable_path=‘C:\\Users\\29389\\Desktop\\python_work\\chromedriver.exe‘)
driver = webdriver.Chrome(service=service)

# 打开网页
driver.get(url)

# 定义账户和密码的xpath
account_xpath = "/html/body/div[2]/div/div/form/div[1]/div[2]/input"
password_xpath = "/html/body/div[2]/div/div/form/div[2]/div/div/input"
login_button_xpath = "/html/body/div[2]/div/div/form/button/span"
cell_xpath = "/html/body/div/div/div/div/div[1]/div[2]/div[3]/div/div[2]/div/div[2]/table/tbody/tr[1]/td[3]/span/p"
cee_xpath = "/html/body/div[2]/div/div/div[2]/span[2]"
cee_1_xpath ="/html/body/div/div/div/div/div[1]/div[2]/div[3]/div/div[2]/div/div[1]/table/thead/tr/th[10]/abbr"

# 定义账户和密码的值
account = "需要你自己登录这个网页注册账号密码,这里输入你自己的账号"
password = "需要你自己登录这个网页注册账号密码,这里输入你自己的密码"

# 找到表格单元格,并点击
cell = driver.find_element(By.XPATH, cell_xpath)
cell.click()

cee = driver.find_element(By.XPATH, cee_xpath)
cee.click()

# 找到账户和密码的输入框,并输入值
account_input = driver.find_element(By.XPATH, account_xpath)
password_input = driver.find_element(By.XPATH, password_xpath)
account_input.send_keys(account)
password_input.send_keys(password)

# 找到登录按钮,并点击
login_button = driver.find_element(By.XPATH, login_button_xpath)
login_button.click()
time.sleep(1)

cee_1 = driver.find_element(By.XPATH, cee_1_xpath)
cee_1.click()
time.sleep(1)

cee_1 = driver.find_element(By.XPATH, cee_1_xpath)
cee_1.click()
time.sleep(1)

# 获取网页中的所有表格元素
tables = driver.find_elements(By.TAG_NAME, "table")

# 创建一个空的数据框,用于存储数据
df = pd.DataFrame()

# 遍历每个表格,提取数据
for table in tables:
# 获取表格中的所有行元素
rows = table.find_elements(By.TAG_NAME, "tr")
# 遍历每一行,提取数据
for row in rows:
# 获取行中的所有单元格元素
cells = row.find_elements(By.TAG_NAME, "td")
# 提取单元格中的文本,并组成一个列表
data = [cell.text for cell in cells]
# 将列表转换为数据框
data = pd.DataFrame([data])
# 使用pandas.concat方法将数据框合并
df = pd.concat([df, data], ignore_index=True)

# 关闭浏览器对象
driver.quit()

# 将数据框保存为excel文件
df.to_excel("涨停池.xlsx", index=False)

df = pd.read_excel("涨停池.xlsx")

# 删除其他列
df.drop(df.columns[10:12], axis = 1, inplace = True)
df.drop(df.columns[3:9], axis = 1, inplace = True)
df.drop(df.columns[0:1], axis = 1, inplace = True)

# 修改列名
df.columns = ["股票名称", "涨停原因", "首次封板", "连扳情况"]

# 保存修改后的excel文件
df.to_excel("涨停池.xlsx", index=False)

# 创建一个ExcelWriter对象
writer = pd.ExcelWriter("涨停池.xlsx", engine="xlsxwriter")

# 将数据框写入excel文件
df.to_excel(writer, index=False)

# 获取xlsxwriter的Workbook和Worksheet对象
workbook = writer.book
worksheet = writer.sheets["Sheet1"]

# 设置A列的列宽为15
worksheet.set_column("A:A", 15)

# 设置B列的列宽为130
worksheet.set_column("B:B", 130)

# 保存并关闭ExcelWriter对象
writer.save()
writer.close()
打开淘股吧APP
6
评论(1)
收藏
展开
热门 最新
跟风狗

23-10-18 22:30

0
好用吗
刷新 首页上一页 下一页末页
提交