Python爬虫实战:抓取网站数据并保存到Excel表格
import requests from lxml import etree import openpyxl
class jiaoben(object):
def __init__(self):
self.url1 = 'https://www.hangxunbao.com/s?search_type=title&limit=20&status=all&page=1'
self.url2 = 'https://www.example.com/' # 第二个页面的URL,需要根据实际情况修改
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.51'
}
self.wb = openpyxl.Workbook()
self.ws = self.wb.active
self.ws.append(['标题', '招标公司', '联系电话', '代理公司', '联系电话'])
def get_data(self,url):
response = requests.get(url, headers=self.headers)
return response.content
def parse_data1(self, data):
# 创建element对象
html = etree.HTML(data)
temp = html.xpath('//*[@id="bidDetail"]/div[2]/div[2]/div[1]/ul')
for el in temp:
temp1 = {}
temp1['title'] = el.xpath('./li[1]/div[1]/a/h1')[0].text #提取标题
temp1['invite_tenders_company'] = el.xpath('./li[1]/div[2]/span[1]')[0].text
temp1['invite_tenders_tel'] = el.xpath('./li[1]/div[2]/span[2]')[0].text
temp1['agent_company'] = el.xpath('./li[2]/div[2]/span[1]')[0].text
temp1['agent_tel'] = el.xpath('./li[2]/div[2]/span[2]')[0].text
self.ws.append([temp1['title'], temp1['invite_tenders_company'], temp1['invite_tenders_tel'], temp1['agent_company'], temp1['agent_tel']])
def parse_data2(self, data):
# 解析第二个页面的数据,需要根据实际情况进行调整
pass
def run(self):
# 首先爬取第一个页面的数据
data1 = self.get_data(self.url1)
self.parse_data1(data1)
# 点击第一个页面的第一个数据,进入第二个页面
# 这里需要使用selenium模拟点击,具体实现需要根据实际情况进行调整
# 例如:
# from selenium import webdriver
# driver = webdriver.Chrome()
# driver.get(self.url1)
# driver.find_element_by_xpath('//*[@id="bidDetail"]/div[2]/div[2]/div[1]/ul/li[1]/div[1]/a/h1').click()
# self.url2 = driver.current_url
# driver.quit()
# 爬取第二个页面的数据
data2 = self.get_data(self.url2)
self.parse_data2(data2)
# 将数据保存到excel表格中
self.wb.save('data.xlsx')
if name == 'main': jiaoben = jiaoben() jiaoben.run()
原文地址: https://www.cveoy.top/t/topic/oRyZ 著作权归作者所有。请勿转载和采集!