python爬虫实例(政府招标采购信息爬取并写入CSV)
实例目标:
在政府招标采购网上,爬取招标信息,并写入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)相关推荐
- python 爬虫实例-python爬虫实例,一小时上手爬取淘宝评论(附代码)
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 1 明确目的 通过访问天猫的网站,先搜索对应的商品,然后爬取它的评论数据. ...
- Python爬虫实例,一小时上手爬取淘宝评论(附代码)!
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 1 明确目的 通过访问天猫的网站,先搜索对应的商品,然后爬取它的评论数据. ...
- python爬虫实例——session自动登录并爬取相关内容
1.理解下 session (会话) 所谓的会话,你可以理解成我们用浏览器上网,到关闭浏览器的这一过程.session是会话过程中,服务器用来记录特定用户会话的信息. 比如今天双11,你淘宝网浏览了哪 ...
- python爬虫实例,一小时上手爬取淘宝评论(附代码)
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 1 明确目的 通过访问天猫的网站,先搜索对应的商品,然后爬取它的评论数据. ...
- Python 爬虫练手项目—酒店信息爬取
from bs4 import BeautifulSoup import requests import time import reurl = 'http://search.qyer.com/hot ...
- python爬虫实例电商_Python实现爬取并分析电商评论
现如今各种APP.微信订阅号.微博.购物网站等网站都允许用户发表一些个人看法.意见.态度.评价.立场等信息.针对这些数据,我们可以利用情感分析技术对其进行分析,总结出大量的有价值信息.例如对商品评论的 ...
- Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息
Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息 基础: Python 爬虫 之 Selenium.webdriver 的安装,以及模拟打开操作 ...
- python爬虫多久能学会-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...
原标题:不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方 ...
- python爬虫入门实战---------一周天气预报爬取_Python爬虫入门实战--------一周天气预报爬取【转载】【没有分析...
Python爬虫入门实战--------一周天气预报爬取[转载][没有分析 Python爬虫入门实战--------一周天气预报爬取[转载][没有分析] 来源:https://blog.csdn.ne ...
最新文章
- python名称由来_Python的由来与使用介绍
- pymysql dataframe 写入sql
- Spring JDBC-事务方法嵌套调用解读
- TF之AutoML之AdaNet框架:AdaNet框架的简介、特点、使用方法详细攻略
- java——对象学习笔记
- Friendly Group Gym - 102769F 2020(并查集)ccpc秦皇岛分站赛
- 三角灯箱 css_如何使用HTML,CSS和JavaScript创建灯箱
- php生成图片文件流,php 如何把图片转化为字节流存储到数据库?
- Bad Hair Day(求数组中元素和它后面离它最近元素之间的元素个数)
- 拉取远程分支到本地分支_想买的保险本地没有分支机构怎么办?异地投保理赔难吗?...
- 魔方与科学和计算机表现李世春,科学网—魔方 - 李世春的博文
- 观察者模式及其应用场景
- xshell大神级配色-夜间最配
- 【公开课报名】腾讯产品经理教你如何用好腾讯会议
- java类与对象实验报告心得体会_java上机实验心得体会报告(大全五篇)
- make xconfig详解
- Oh-my-Posh V3更新说明
- ios15html2canvas截图空白怎么解决
- 新咪咕Mg100、M101-强刷固件-刷机包
- Python(海龟画图)彩虹