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()

Python爬虫实战:抓取网站数据并保存到Excel表格

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

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