打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
第1集 如何使用python网上抓取数据

我们在平时工作中需要提取各种数据以满足我们平时工作的需要,而现在网络上存在各式各样的数据,使我们获取数据的主要来源。那么我们如何快捷的获取网络数据呢,本节我们将对使用python从网络上获取数据做简单介绍。

我们先来看看代码,然后再做分析,如下代码是从深圳住房保障局网站上获取各种住房通告,并将获取到的内容按照excel表格形式保存下来:

#导入requests及其他库

import requests

from bs4 import BeautifulSoup

import re

import csv

import time

#使用下面的方法能够确保正常打开网站并获取数据,不会出现http error的错误

#指定对应的user_agent和header

user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'

headers = {'User-Agent':user_agent}

r = requests.get('http://zjj.sz.gov.cn/zfbzfw/',headers=headers)

r.encoding='utf-8'

#创建soup的对象

soup = BeautifulSoup(r.text,'lxml',from_encoding='utf8')

#用正则表达式匹配所有包含内容的链接

print(soup.contents)

#这里由于我们要获取的通告都含有字符串”.hml',所以我们就按照这个关键字去查找

titles = soup.find_all(href=re.compile('.htm'))

rows = []

for title in titles:

href = title.get('href')

row = ('通知公告',title.string,href)

rows.append(row)

#定义csv文件头

header = ['发文部门','标题','链接']

with open('D:/ChromeCoreDownloads/test.csv','w+',encoding='gb18030') as f:

f_csv = csv.writer(f)

#写入文件头

f_csv.writerow(header)

#写入文件内容

f_csv.writerows(rows)

#这里的路径及文件要确保存在,如果不存在的话那就没法运行了

print('最新信息获取完成\n结果保存在D:/ChromeCoreDownloads/test.csv文件中')

运行上述代码,其结果如下

运行结果

下面是得到的excel表格里面的内容:

获取到的通知公告及其网站链接

开始部分的代码基本都是类似的,这里使用的是不易报错的爬取网站内容的方式,这个方式可以直接借用,因为如果不明确指示user_agent和header就去爬取网站内容的话,很可能网站是不让你去访问的,上报类似http error的错误:

爬取网站内容的模块式开头

代码简单分析:首先我们要先明确要获取网站上的那些内容,这样才能够进一步编写代码。这里我们要获取网站上的各种通知公告的内容,所以我们可以看一下网站源代码(右键单击网站界面->选择并单击“查看源代码”既可以看到对应的内容),在源代码中我们看到了我们需要获取的内容后缀都是.hml,这个发现给我们获取对应的内容提供了方便,这就是这句代码:titles = soup.find_all(href=re.compile('.htm'))的由来。

网站源码截图

本节就暂时介绍到这里,下节我们将对获取到的内容进行处理,觉得写得不错就点个赞然并关注鼓励一下,祝各位生活愉快!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何使用 Python 和 BeautifulSoup 爬取网站
学习Python与Excel:使用Python实现CSV文件与Excel文件相互转换
更高效的Python CSV文件导出
最简单的python爬虫案例,适合入门学习
Python清洗数据代码举例
【Python3】pandas.read
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服