python获取招投标信息

1.数据来源是全国公共资源交易网(http://deal.ggzy.gov.cn/ds/deal/dealList.jsp?HEADER_DEAL_TYPE=01)
在这里插入图片描述
2.获取(地区、标题、来源、开标记录、类型、中标结果等信息)抓取代码如下:

  # 列表页解析
    def parse(self, response):

        # print(response)

        item = BidItem()
        # print(1111)
        # print(response.text)
        # time.sleep(3)
        # 获得结果
        res = json.loads(response.text)

        # print(res["data"][0]["title"])
        for i in res["data"][:10]:

            # 标题
            item["title"] = i["title"]

            # 省份
            item["province"] = i["districtShow"]

            # 城市
            item["city"] = "承德市"

            # 发布日期
            item["zb_date"] = i["timeShow"]

            # 内容摘要
            item["abstract"] = "暂无摘要"

            # 详情页url
            detail_url = i["url"]

            bid_url = detail_url.replace("/a/", "/b/")
            print(bid_url)

            try:
                yield scrapy.Request(
                    url=detail_url,
                    meta={"key_item": deepcopy(item), "bidurl": bid_url},
                    callback=self.parse_detail,
                    dont_filter=True
                )
            except Exception as e:
                logger.error(e)

    # 详情页数据
    def parse_detail(self, response):

        item = response.meta.get("key_item")

        list1 = []

        # with open("a.html", "wb") as f:
        #     f.write(response.body)

        # 招标url
        bid_url = response.meta.get("bidurl")
        # print(bid_url)

        # 拼接到列表中
        list1.append(bid_url)

        # 开标记录url
        if "暂无" in response.xpath("//div[@id='div_0102']//li//text()").extract()[0]:
            item["bid_opening_record"] = "暂无数据"
            list1.append("2")
            # print(11111)
        else:
            record_url = response.xpath("//div[@id='div_0102']//a/@onclick").extract()[0]
            record_url = "http://www.ggzy.gov.cn/information" + record_url.split("','")[1][:-2]
            res = requests.get(record_url)
            item["bid_opening_record"] = res.text
            # list1.append(record_url)
            # print(record_url)

        # 交易结果url
        if "暂无" in response.xpath("//div[@id='div_0104']//li//text()").extract()[0]:
            item["trade_result"] = "暂无数据"
            list1.append("3")
            # print(22222)
        else:
            res_url = response.xpath("//div[@id='div_0104']//a/@onclick").extract()[0]
            res_url = "http://www.ggzy.gov.cn/information" + res_url.split("','")[1][:-2]
            res = requests.get(res_url)
            item["trade_result"] = res.text
            list1.append(res_url)
            # print(record_url)

        # 招标/资审文件澄清url
        if "暂无" in response.xpath("//div[@id='div_0105']//li//text()").extract()[0]:
            item["bid_clear"] = "暂无数据"
            list1.append("4")
            # print(333)
        else:
            clear_url = response.xpath("//div[@id='div_0105']//a/@onclick").extract()[0]
            clear_url = "http://www.ggzy.gov.cn/information" + clear_url.split("','")[1][:-2]
            res = requests.get(clear_url)
            # div = etree.tostring(res.text, encoding='utf-8', method="Html")
            # print(type(div), 22222222)
            item["bid_clear"] = res.text
            # list1.append(clear_url)

        # print(list1)
        try:
            yield scrapy.Request(
                url=bid_url,
                meta={"key_item": deepcopy(item),"list1": list1},
                callback=self.bid_parse,
                dont_filter=True
            )
        except Exception as e:
            logger.error(e)

3.获取到的数据如下:
在这里插入图片描述
4.通过这些数据,利用django做一个自己的查询平台。
在这里插入图片描述
5.如有问题,请加qq:763073105

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Python招标信息爬虫是一种使用Python编程语言编写的网络爬虫工具,主要用于自动抓取、提取和分析招标信息的程序。它可以通过模拟浏览器访问网页,从中提取感兴趣的信息,并将其保存或进行进一步处理。 使用Python开发招标信息爬虫有以下几个步骤: 1. 确定目标网站:首先需要确定要抓取招标信息的目标网站。可以选择招标信息网站,如公共招标网站、企业采购网站等。 2. 分析网页结构:通过观察目标网站的网页结构,了解招标信息的数据是如何展示的,从而确定后续的爬取策略。 3. 编写爬虫代码:利用Python的网络爬虫框架,如Scrapy、Requests等,编写爬虫代码。代码需要模拟浏览器的请求,访问目标网页,并提取关键信息。 4. 数据处理与存储:爬虫获取到的招标信息可能是结构化或非结构化的数据,需要进行处理和清洗。可以使用Python的数据处理库,如Pandas或Numpy进行数据处理。同时,可以选择将招标信息保存到数据库或文件中,以便后续的分析或展示。 5. 定期更新与监控:招标信息是动态变化的,可能会有新的信息发布。可以使用Python的定时任务库,如APScheduler,定期执行爬虫程序,以获取最新的招标信息。另外,还可以添加监控机制,如当关键词出现时自动发送邮件提醒。 总之,Python招标信息爬虫是一种高效、自动化的数据获取工具,可用于抓取、处理和分析各类招标信息。借助Python丰富的开源库和工具,能够快速开发出功能强大的爬虫程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值