实例目标:

在政府招标采购网上,爬取招标信息,并写入CSV文件,形成招标结果信息表格。
政府招标采购网址:
链接: linkhttp://www.ccgp-hubei.gov.cn/notice/cggg/pzhbgg/index_1.html.
页面如下:
每一条项目信息都是一个链接,进入链接后,是项目的完整信息:
最终目标是获取每个项目的具体信息,如项目编号、项目名称、中标金额等,并形成表格。

步骤

1. 爬虫过程中要针对主页和每个项目链接,分别实现html获取,并解析,所以分别将这两块写成函数:

def download_page()
def xml_aly

2. 获取分页信息,设置翻页循环次数

    page_end=xml_aly(rule=rule_host,url=u_host)end_num=re.findall("\d+",page_end[0])   #获取招标首页页码信息 page=end_num[1]        n=int(page)

3. 创建csv文件,并写入表头

    with open('zb.csv','a',newline='') as f:writer = csv.writer(f)writer.writerow(['项目编号','项目名称','供应商','项目金额','日期']) #写入表头

4. 分别爬取每个项目信息,并写入csv

代码

重要环节已在代码中注释

import random
import requests
from lxml import etree
import re
import csv#获取页面html
def download_page(url, user_Agent=None, referer=None):#应对反爬虫,构建User_Agent池ua_list=["Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0""Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0",]user_Agent=random.choice(ua_list)   headers = {"Referer":referer,"User-Agent":user_Agent}response = requests.get(url=url,headers=headers)try:html = response.content.decode("utf-8")           except Exception as e:print("Download error:",e)html = Nonereturn html#html解析
def xml_aly(rule,url):html=download_page(url)tree=etree.HTML(html)aly_res=tree.xpath(rule)return aly_resif __name__ == '__main__':u_host = "http://www.ccgp-hubei.gov.cn/notice/cggg/pzhbgg/index_1.html"rule_host='//ul[@class="pagination"]/li[last()]/text()'page_end=xml_aly(rule=rule_host,url=u_host)end_num=re.findall("\d+",page_end[0])   #获取招标首页页码信息 page=end_num[1]        n=int(page)with open('zb.csv','a',newline='') as f:writer = csv.writer(f)writer.writerow(['项目编号','项目名称','供应商','项目金额','日期']) #写入表头   #翻页获取所有招标项目链接for i in range(n+1):u_host = "http://www.ccgp-hubei.gov.cn/notice/cggg/pzhbgg/index_"+str(i)+".html"rule_host='//ul[@class="news-list-content list-unstyled margin-top-20"]/li/a/@href'project_link=xml_aly(rule=rule_host,url=u_host)#爬取每页中所有项目链接的html,并写入csv for link in project_link:url_head="http://www.ccgp-hubei.gov.cn"url=url_head+linkrule_project='//p/span/text()'project_content=xml_aly(rule=rule_project,url=url)project_num=project_content[0]project_name=project_content[2]project_sup=project_content[4]project_scale=project_content[8]+"万元"project_date=project_content[12]writer.writerow([project_num,project_name,project_sup,project_scale,project_date])

最终结果:

python爬虫实例(政府招标采购信息爬取并写入CSV)相关推荐

  1. python 爬虫实例-python爬虫实例,一小时上手爬取淘宝评论(附代码)

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 1 明确目的 通过访问天猫的网站,先搜索对应的商品,然后爬取它的评论数据. ...

  2. Python爬虫实例,一小时上手爬取淘宝评论(附代码)!

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 1 明确目的 通过访问天猫的网站,先搜索对应的商品,然后爬取它的评论数据. ...

  3. python爬虫实例——session自动登录并爬取相关内容

    1.理解下 session (会话) 所谓的会话,你可以理解成我们用浏览器上网,到关闭浏览器的这一过程.session是会话过程中,服务器用来记录特定用户会话的信息. 比如今天双11,你淘宝网浏览了哪 ...

  4. python爬虫实例,一小时上手爬取淘宝评论(附代码)

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 1 明确目的 通过访问天猫的网站,先搜索对应的商品,然后爬取它的评论数据. ...

  5. Python 爬虫练手项目—酒店信息爬取

    from bs4 import BeautifulSoup import requests import time import reurl = 'http://search.qyer.com/hot ...

  6. python爬虫实例电商_Python实现爬取并分析电商评论

    现如今各种APP.微信订阅号.微博.购物网站等网站都允许用户发表一些个人看法.意见.态度.评价.立场等信息.针对这些数据,我们可以利用情感分析技术对其进行分析,总结出大量的有价值信息.例如对商品评论的 ...

  7. Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息

    Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息 基础: Python 爬虫 之 Selenium.webdriver 的安装,以及模拟打开操作 ...

  8. python爬虫多久能学会-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...

    原标题:不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方 ...

  9. python爬虫入门实战---------一周天气预报爬取_Python爬虫入门实战--------一周天气预报爬取【转载】【没有分析...

    Python爬虫入门实战--------一周天气预报爬取[转载][没有分析 Python爬虫入门实战--------一周天气预报爬取[转载][没有分析] 来源:https://blog.csdn.ne ...

最新文章

  1. python名称由来_Python的由来与使用介绍
  2. pymysql dataframe 写入sql
  3. Spring JDBC-事务方法嵌套调用解读
  4. TF之AutoML之AdaNet框架:AdaNet框架的简介、特点、使用方法详细攻略
  5. java——对象学习笔记
  6. Friendly Group Gym - 102769F 2020(并查集)ccpc秦皇岛分站赛
  7. 三角灯箱 css_如何使用HTML,CSS和JavaScript创建灯箱
  8. php生成图片文件流,php 如何把图片转化为字节流存储到数据库?
  9. Bad Hair Day(求数组中元素和它后面离它最近元素之间的元素个数)
  10. 拉取远程分支到本地分支_想买的保险本地没有分支机构怎么办?异地投保理赔难吗?...
  11. 魔方与科学和计算机表现李世春,科学网—魔方 - 李世春的博文
  12. 观察者模式及其应用场景
  13. xshell大神级配色-夜间最配
  14. 【公开课报名】腾讯产品经理教你如何用好腾讯会议
  15. java类与对象实验报告心得体会_java上机实验心得体会报告(大全五篇)
  16. make xconfig详解
  17. Oh-my-Posh V3更新说明
  18. ios15html2canvas截图空白怎么解决
  19. 新咪咕Mg100、M101-强刷固件-刷机包
  20. Python(海龟画图)彩虹

热门文章

  1. 详细的科技特长生路径和成长规划
  2. c语言用递归法求杨辉三角形,关于【杨辉三角】的递归解决方法,请教。有没有大神【【高手】】...
  3. 越来越多的女儿和妈妈无法共处,是什么原因呢?
  4. nashorn 和 delight-nashorn-sandbox 学习笔记
  5. 【将金令】稳健,方为上策
  6. Fibre Channnel
  7. 百度不收录怎么办(网站不收录的原因探讨)
  8. Flink之轻量级分布式快照Checkpoint
  9. 模拟拖拽-小火柴博客
  10. canvas学习这一片果然就够了(一)