由于该网站需要登录才能访问,因此无法提供完整代码,以下仅提供主要思路和方法供参考。

  1. 登录网站获取cookie和session_id,用于后续的访问。
  2. 构造post请求,设置请求头和请求体,将需要的参数和页码发送给服务器获取数据。
  3. 对获取到的数据进行解析和提取,按照要求进行处理,存储到csv文件中。
  4. 设置每个页面的访问间隔为5秒以上,避免过于频繁的访问导致被封IP或被限制访问。

以下是主要代码实现:

import requests
import time
import csv
from bs4 import BeautifulSoup

# 登录网站获取cookie和session_id
login_url = 'http://www.ccgp.gov.cn/login'
data = {'username': 'your_username', 'password': 'your_password'}
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
session = requests.session()
session.post(login_url, data=data, headers=headers)
cookie = session.cookies.get_dict()
session_id = cookie['JSESSIONID']

# 构造post请求,获取数据并解析
url = 'http://www.ccgp.gov.cn/cr/list'
headers['Cookie'] = 'JSESSIONID=' + session_id
params = {
    'distinId': 'distinId',
    'distinName': '',
    'bidSort': '0',
    'pinMu': '0',
    'bidType': '0',
    'buyerName': '',
    'projectId': '',
    'displayZone': '',
    'zoneId': '',
    'agentName': '',
    'agentId': '',
    'agentType': '',
    'page': '1',
    'pageSize': '15'
}
for i in range(8):
    params['page'] = str(i+1)
    response = session.post(url, data=params, headers=headers)
    soup = BeautifulSoup(response.text, 'html.parser')
    table = soup.find('table', {'class': 'table'})
    rows = table.find_all('tr')
    for row in rows[1:]:
        cols = row.find_all('td')
        company = cols[0].text.strip()
        code = cols[1].text.strip()
        address = cols[2].text.strip()
        behavior = cols[3].text.strip()
        result = cols[4].text.strip()
        basis = cols[5].text.strip()
        punish_date = cols[6].text.strip()
        publish_date = cols[7].text.strip()
        law_enforcement = cols[8].text.strip()
        # 存储到csv文件中
        with open('data.csv', 'a', newline='', encoding='utf-8-sig') as f:
            writer = csv.writer(f)
            writer.writerow([company, code, address, behavior, result, basis, punish_date, publish_date, law_enforcement])
    time.sleep(5)  # 设置访问间隔为5秒以上
``
使用post的方法获取网站httpwwwccgpgovcncrlist中八个页面的数据要求每个页面访问间隔5秒以上并将八个页面中的数据进行处理分为企业名称、统一社会信用代码、企业地址、严重违法失信行为的具体情形、处罚结果、处罚依据、处罚日期、公布日期、执法单位保存到csv文件中

原文地址: http://www.cveoy.top/t/topic/gTZU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录