用selenium抓取海关数据

本文介绍了一个使用Selenium和PyQuery爬取特定网站上海关数据的方法。通过自动化浏览器操作登录并获取数据,然后利用正则表达式提取关键信息,并将结果保存为CSV文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于工作需要,之前从http://customs.tradestudy.cn/ 帮课大学上爬了一些国家的海关数据。
刚好很久没用 selenium 于是就来练手,直接上源码:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from pyquery import PyQuery as pq
import time
import re
import csv
import requests
from urllib import parse
from tqdm import tqdm
from urllib.parse import urlencode
from requests.exceptions import RequestException
from bs4 import BeautifulSoup as bs

解析网页

def parseWeb(page):
# 第一次用pyquery解析
    html = pq(page)
# 第二次用beautifulsoup提取出表格数据
    soup =bs(str(html),'lxml')
    items=soup.select("#Querytable > div > table > tbody")
# 第三次用beautifulsoup提取a标签
    items=str(items)
    soup2=bs(items,'lxml')
    items2 = soup2.select('tbody a')
# 返回提取的a标签列表
    return items2

匹配参数

# 用正则表达式匹配目标参数
def get_data(items2):
    pattern = re.compile(r'title=\"(.*?)\"')
    content = pattern.findall(str(items2))
# 返回匹配到的内容列表
    return content

整理字典,传入列表

# 把supplier,buyer,desc,country,code作为一个字典,存入customsData
def data_list(content):
    customsData = []
    i=0
    j=1
    k=2
    l=3
    m=4

    while m <len(content)-1:
        item={}
        item['supplier']=content[i]
        i=i+5
        item['buyer']=content[j]
        j=j+5
        item['desc']=content[k]
        k=k+5
        item['country']=content[l]
        l=l+5
        item['code']=content[m]
        m=m+5
        customsData.append(item)
    return customsData

写入文件

def write_csv(customsData):
    with open('CustomsData.csv','a',newline='',encoding='utf-8') as csvfile:
        writer = csv.writer(csvfile)
        for i in range(len(customsData)):
            item =[]
            for key,value in customsData[i].items():
                item.append(value)
            writer.writerow(item)

主程序

由于还没学到家,这里没添加处理验证码的模块,只能挖坑待填了。

browser = webdriver.Chrome()
start_url="http://my.tradestudy.cn/customs/?country=ecuador&start=2012-01-01&end=2018-05-10&product_desc=masterbatch&pn=1&order=desc"
browser.get(start_url)
# 登陆
browser.find_element_by_css_selector("#signIn > dl > dd:nth-child(1) > input").send_keys("1888888888") 
//这里输入你的账号  
browser.find_element_by_css_selector("#signIn > dl > dd:nth-child(2) > input").send_keys("1888888888")  
//这里输入你的密码
browser.find_element_by_css_selector("#signIn > input").click() 
time.sleep(5)
page = browser.page_source
Webcontent = parseWeb(page)
TargetData = get_data(Webcontent)
CustomsData=data_list(TargetData)
record_data = write_csv(CustomsData)
time.sleep(5)
p = 2
try:
    while p < 101:
        paras ={
            'country':'ecuador',
            'start':'2012-01-01',
            'end': '2018-05-10',
            'product_desc': 'masterbatch',
            'pn':str(p),
            'order': 'desc'
            }
        url = 'http://my.tradestudy.cn/customs/?'+ urlencode(paras)
        browser.get(url)
        time.sleep(5)
        WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.CLASS_NAME, "nubTool")))
        page = browser.page_source
        Webcontent = parseWeb(page)
        TargetData = get_data(Webcontent)
        CustomsData=data_list(TargetData)
        record_data = write_csv(CustomsData)
        p+=1
        time.sleep(5)
except:
    print('something wrong')
参考资源链接:[Python审计工具箱:自动化截图、数据处理与查询](https://wenku.csdn.net/doc/7adbb092o3?utm_source=wenku_answer2doc_content) 要打造一个功能全面的审计工具箱,你需要精通Python编程,掌握数据处理技术,并了解自动化脚本的编写。首先,你可以通过学习Python的基础知识,以及利用pandas和numpy等数据处理库来提高数据处理的效率。其次,要实现快递截图、工商信息查询和询证函管理等自动化功能,你可以借助Python的第三方库,如selenium进行网页自动化操作,requests用于API数据交互,BeautifulSoup或lxml进行HTML内容解析等。 在快递截图功能中,你可以使用selenium打开快递网站,输入快递单号,并截图关键信息区域。工商信息查询可以通过爬虫技术从工商登记网站抓取数据,并保存截图。对于询证函管理,你可以设计自动化邮件发送和接收的脚本,并结合电子签名验证功能。 海关查询功能的实现较为复杂,涉及到与海关系统的API对接,通常需要获取相应的授权和接口文档,然后使用requests库按照API要求发送请求并处理响应数据。 此外,为了确保审计工具箱的效率和准确性,还需要进行充分的测试和调试,以及错误处理机制的编写。建议查看《Python审计工具箱:自动化截图、数据处理与查询》一书,该书详细介绍了审计工具箱的开发流程和关键技术点,能为你提供完整的开发指导和丰富的代码示例。通过该书的学习,你将能够掌握从零开始构建审计工具箱的整个过程,包括但不限于快递截图、工商信息、询证函管理和海关查询等功能的实现。 参考资源链接:[Python审计工具箱:自动化截图、数据处理与查询](https://wenku.csdn.net/doc/7adbb092o3?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值