实战selenium框架下在爱企查爬取企业的历史变更信息

代码如下

# 导入包
import random
import time
from tkinter import filedialog
import tkinter as tk
import xlrd
import os
import datetime
import csv
from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC



def chooseFile():
    # 实例化
    root = tk.Tk()
    root.withdraw()
    # 获取文件夹路径
    f_path = filedialog.askopenfilename(title='选择公司列表文件', filetypes=[('xlsx', '*.XLSX'), ('xls', '*.xls')])
    if f_path == '':
        return f_path
    print('\n获取的文件地址:', f_path)
    # 打开文件
    with xlrd.open_workbook(f_path, formatting_info=False) as workbook:
        sheet1 = workbook.sheet_by_index(0)
    return f_path


def DList(tagList):
    nList = []
    if len(tagList) == 0:
        nList.append(" ")
        nList.append(" ")
        nList.append(" ")
    else:
        nList.append(tagList[0])
        nList.append(tagList[1])
        nList.append(tagList[2])

    return nList


def main():
    # 文件路径
    # xlsFile = "data//default_data_file.xlsx"
    xlsFile = chooseFile()
    if xlsFile == '':
        return
        # 打开文件
    workbook = xlrd.open_workbook(xlsFile, formatting_info=False)
    sheet1 = workbook.sheet_by_index(0)
    iIndex = 0
    allUrls = []

    while iIndex < sheet1.nrows:
        commodityId = str(sheet1.cell_value(iIndex, 0))
        allUrls.append([commodityId])
        iIndex = iIndex + 1

    currentDir = os.getcwd()  # "C:/scrapy" #os.path.dirname(os.path.abspath(__file__))
    dirName = currentDir + "//ouput//"
    curr_time = datetime.datetime.now()
    strNow = datetime.datetime.strftime(curr_time, '%Y%m%d%H%M%S')
    dirName = dirName + strNow
    os.makedirs(dirName)
    outCsv = dirName + "/out.csv"
    # region 定义浏览器
    # http请求头
    userAgent = [
        "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36",
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0",
        "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36",
        "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 SE 2.X MetaSr 1.0",
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 SLBrowser/9.0.3.1311 SLBChan/128",
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
        "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36",
        "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0"]
    # 指定谷歌的位置-- 本项目目录内,如果机器已经安装了Google浏览器。需要先卸载掉
    chrome_location = r'Chrome-bin\chrome.exe'
    # 定义options对象
    options = webdriver.ChromeOptions()
    options.binary_location = chrome_location
    # 1、禁止浏览器自动关闭
    options.add_experimental_option('detach', True)
    # 2、禁用测试控制
    options.add_experimental_option('excludeSwitches', ['enable-automation']
是一个提供企业信息询的网站,我们可以使用Python编写爬虫来自动获取网站上的企业数据。下面是关于如何实现爬虫的一些建议: 1. 安装相关库:首先,我们需要安装所需的Python库,比如requests、beautifulsoup和pandas等。可以使用pip工具来安装这些库。 2. 分析网页结构:在编写爬虫之前,我们需要分析网站的网页结构,确定需要抓取的信息所在的位置和HTML标签。使用浏览器的开发者工具可以帮助我们进行网页结构分析。 3. 发送请求获取网页内容:使用requests库发送网络请求,获取网页的HTML内容。可以使用GET方法来获取网页内容。 4. 解析网页内容:使用beautifulsoup库对获取到的HTML内容进行解析,提取出我们需要的企业信息。 5. 利用爬虫技巧提高效率:可以使用多线程或异步爬虫等技术来提高爬取效率,减少等待时间。 6. 存储数据:最后,将获取到的企业信息存储到本地文件或数据库中,可以使用pandas库来进行数据处理和存储。 需要注意的是,在编写爬虫过程中,应该遵守爬虫的道德准则,避免对网站造成过大的负担并且尊重网站的访问规则。可以设置合适的爬虫频率,并适当添加延时,以免给网站服务器造成过大的负担。 以上是关于如何使用Python实现爬虫的一些建议,希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值