最近三月份沉迷于股票操作,基友打球又催的慌
结果!!!!
股票下海干活,KPI低成蛇皮,打铁打成科比。然后正好最近也被安排去做数据源有关的工作(就是爬虫),那就还是服从命令,好好搬砖吧,正好日常更一下学习博客。
先总结了一下:
scrapy,newspaper一类的框架和库肯定是要了解的;
urllib库,多线程等也是必备的;
爬虫类型:通用网络爬虫(全网爬虫,性能要求高)
聚焦网络爬虫(特定信息,特定人群服务)
增量式爬虫 (爬取更新的页面,新的信息)
深层网络爬虫(简而言之,提交表单的深层页面 构成:url列表,LVS列表,爬行控制器等)也是一些纲领性的内容,一定要有个底。
那就开个坑,从urllib库开始和大家一起学习!
1.快速使用urllib库爬取网页
urllib是python提供操作URL的模块,我们在爬取网页的时候,经常需要用到这个库。
-先导入urllib.request
import urllib.request
-创建变量file,将爬取的网页赋给变量file(别问,问就是上虎扑步行街)
file = urllib.request.urlopen("https://bbs.hupu.com/bxj")
-用file.read()读取全部内容,file.readline()读取一行内容,储存到变量data中
data = file.read()
dataline = file.readline()
重点:file.read()读取全部内容=》赋值到字符串变量
file.readlines()读取全部内容=》赋值到列表变量,若要读取全部内容,推荐使用这种方式
file.readline()读取文件一行内容
print(data),print(dataline)自己查看就好囖
(篇幅有限,输出的结果如下,都是一些类似于html标签节点)
2.将爬取网页的内容储存到本地
-以写入的方式打开一个本地文件,命名为html为后缀的格式
使用open()函数打开文件,并且以“wb”二进制写data
fhandle = open("D:/repfile/1.html","wb")
-将data变量写入该文件
fhandle.write(data)
-关闭该文件
fhandle.close()
保存结果如下,可以看到有1html网页文件:
另一种保存方法,即使用urlretrieve()函数将对应信息写入本地文件:
例:将知乎首页的html文件写入到本地(上图2)
filename = urllib.request.urlretrieve("https://www.zhihu.com/",filename="D:/repfile/2.html")
3.urllib中常用函数汇总:
-清除urlretrieve执行过程中的缓存
urllib.request.urlcleanup()
-返回当前环境有关信息:
file.info()
-获取状态码和源网页
file.getcode()
file.geturl()
ok,返回200响应正确;源网址为虎扑步行街,也没有问题。
-对url地址进行编码,解码
(因为url标准中只允许一部分ASCⅡ的存在,如汉字以及“:”,“&”等字符就是不符合标准的,所以需要编码)
编码:
urllib.request.quote("https://bbs.hupu.com/bxj"
同理,可以进行解码,返回原网址
urllib.request.unquote("https%3A//bbs.hupu.com/bxj")
今天就到这里啦,明天聊一聊url出现异常时如何处理的问题