博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python爬数据以字典变量保存_python爬虫第7篇——爬取的数据如何存档
阅读量:4319 次
发布时间:2019-06-06

本文共 1721 字,大约阅读时间需要 5 分钟。

不能让你暴富,但至少可以奔小康了!

想了解更多精彩内容,快来关注南大盛联

阅读本文,假定你使用的是Windows操作系统下面的python3.X版本。

并且已经掌握了一些基本的python操作。否则,请从本系列的第一篇开始阅读。

我们力求看到这篇文章的朋友,都不会因为太复杂而看不懂。

存档这个技术活,或者说持久化,都需要解决哪些问题呢?我看就三个问题:

1:存到哪里?

2:如何存?

3:存什么?

8b22ab26ef493287a87a82da4f4b89c6.png

1:存到哪里?

这个目前第一步的话,就是存到本地电脑的硬盘上,就是我们说的C盘或者D盘,或者其他的硬盘上,都是可以的。

暂且先不去了解Linux,或者存到数据库,这是下一阶段的事情,后面都会一一展开讨论。

比如存档的时候,就是存到D盘下面资料夹A201022,这个资料夹名字没有啥新意,就是代表2020年10月22日建立的。

8b22ab26ef493287a87a82da4f4b89c6.png

2:如何存?

如果使用python自带模块urllib下的requests方法

代码这样写:

with open('d:\\A201022\\ndsl.html','w') as f:

print(data.read(),file = f)

如果使用第三方模块requests方法

with open('d:\\A201022\\ndsl.html','w') as f:

print(data.url,file = f)

!!!注意:requests模块中没有read()方法。

可能有的同学看到这个什么方法,头就大了,其实这是面向对象的编程里面的名词。

这里容易踩的坑就是:

A:路径的写法:比如我们的路径是D:\A201022\ndsl.html,我们假定是windows系统下

我们可以使用2种方法来进行路径描述,一种写法是双斜杠!

在代码中直接就是:D:\\A201022\\ndsl.html

另一种写法是反斜杠!

或者D:/A201022/ndsl.html

中间隔开的地方必须双斜杠。

我们先记住这样就可以。因为单独的斜杠\是转义符的意思。

B:路径必须写在单引号中

C:必须提前建立好资料夹,还有html文件,其实这个文件非常好建立,建立一个记事本文件,然后把后缀名改为html就可以了。如果不显示后缀名,请开启文件夹显示后缀名。8b22ab26ef493287a87a82da4f4b89c6.png

3:存什么?

就是利用python中自带的urllib模块中的request方法,或者是第三方模块requests.

严重注意:request和requests虽然只有一个字母之差,但是根本不同。不要去试图比较他们。

我们假定

urllib模块中的request方法

import urllib.request

url = 'http://www.baidu.com'

data = urllib.request.urlopen(url)

第三方模块中的requests方法

import requests

url = 'http://www.baidu.com'

data = requests.get(url)

这样的话,就是把我们访问的地址写进去了。

result=requests.post(url,data,headers)

注意这里是模版,前面这个result可以依照自己的要求进行更改的。

requests.post不能更改,url替换成网址,需要用单引号引起来,headers是个字典变量,这样的{‘User-Agent’:‘’}

后面单引号中填写自己浏览器中的用户代理。

任何浏览器中输入about:version获得!

result.text  #可以获取响应的内容如抓回来的网页

result. encoding='utf-8'

#有时回来的是乱码,改变编码以使其正常显示根据实际情况改变编码utf-8、gb2312等

result. content  #可以获取二进制内容,如抓取登陆时的验证码等非字符资源

result.cookies  #可以查看当前保存的cookie情况

result. status_code  #可以查看HTTP状态码(如200 OK、404 Not Found等)

result.url  #可以查看当前请求的网址

979e5deaf3afa4bd3f4f205c17f5ddf3.png

转载地址:http://vgrzs.baihongyu.com/

你可能感兴趣的文章
[zz]kvm环境使用libvirt创建虚拟机
查看>>
bzoj1059 [ZJOI2007]矩阵游戏
查看>>
插入返回ibatis 的selectKey 实现插入数据后获得id
查看>>
vim 程序编辑器
查看>>
LIS(单调队列优化 C++ 版)(施工ing)
查看>>
刚接触Vuex
查看>>
四种加载React数据的技术对比(Meteor 转)
查看>>
Airthmetic_Approching
查看>>
操作文本文件
查看>>
公司项目的几个问题
查看>>
解决win7下打开Excel2007,报“向程序发送命令时出现问题”的错误
查看>>
Velocity快速入门教程
查看>>
关于集合常见的问题
查看>>
车牌正则表达式
查看>>
Win form碎知识点
查看>>
避免使用不必要的浮动
查看>>
第一节:ASP.NET开发环境配置
查看>>
sqlserver database常用命令
查看>>
rsync远程同步的基本配置与使用
查看>>
第二天作业
查看>>