使用post的方法获取网站httpwwwccgpgovcncrlist中八个页面的数据要求每个页面访问间隔5秒以上并将八个页面中的数据进行处理分为企业名称、统一社会信用代码、企业地址、严重违法失信行为的具体情形、处罚结果、处罚依据、处罚日期、公布日期、执法单位保存到csv文件中
由于该网站需要登录才能访问,因此无法提供完整代码,以下仅提供主要思路和方法供参考。
- 登录网站获取cookie和session_id,用于后续的访问。
- 构造post请求,设置请求头和请求体,将需要的参数和页码发送给服务器获取数据。
- 对获取到的数据进行解析和提取,按照要求进行处理,存储到csv文件中。
- 设置每个页面的访问间隔为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秒以上
``
原文地址: http://www.cveoy.top/t/topic/gTZU 著作权归作者所有。请勿转载和采集!