
2.python爬虫(课程笔记)
文章平均质量分 63
每次上课学习内容
YANG_xiao_QI
这个作者很懒,什么都没留下…
展开
-
1.初识爬虫
一.获取数据的方式:1.企业产生的数据2.数据平台购买的数据3.政府/机构公开的数据4.数据管理咨询公司的数据5.爬取的网络数据二、爬虫的概念网络爬虫又称网页蜘蛛网络机器人,是一种按照一定的规则、自动请求万维网网站并提取网络数据的程序或脚本。三、爬虫的用途...原创 2021-03-15 21:29:17 · 702 阅读 · 0 评论 -
2.NetWork中各种信息的意思
准备:url=‘https://movie.douban.com/top250?start=0’*#url页面分析;页面包括250条电影数据,分10页每页25条,最后数值=(页数-1)25#分析页面:借助开发者工具(F12),找规律,爬虫:模拟开发者工具鼠标点击html效果帮我们找到想要的文字Headers内容,让对方服务器接收到我们的请求时,可以了解我们是什么状态(以bilibili为例)GeneralRequest URL: #请求路径Request Method: OPTIONS原创 2021-05-04 11:54:38 · 1315 阅读 · 1 评论 -
3.网络爬虫的组成结构(一个爬虫框架)
一个网络爬虫的组成结构:爬虫调度程序(程序的入口,用于启动整个程序)url管理器(用于管理未爬取得url及已经爬取过的url)网页下载器(用于下载网页内容用于分析)网页解析器(用于解析下载的网页,获取新的url和所需内容)网页输出器(用于把获取到的内容以文件的形式输出)编写网络爬虫(1)准备所需库我们需要准备一款名为BeautifulSoup(网页解析)的开源库,用于对下载的网页进行解析,我们是用的是PyCharm编译环境所以可以直接下载该开源库。步骤如下:选择File->.转载 2020-11-04 16:48:03 · 2207 阅读 · 0 评论 -
4.pycharm添加第三方库
网络爬虫的第一步就是根据URL,获取网页的HTML信息。在Python3中,可以使用urllib.request和requests进行网页爬取。(1)准备所需库我们需要准备一款名为BeautifulSoup(网页解析)的开源库,用于对下载的网页进行解析,我们是用的是PyCharm编译环境所以可以直接下载该开源库。urllib库是python内置的,无需我们额外安装,只要安装了Python就可以使用这个库。requests库是第三方库,需要我们自己安装。第三方库安装步骤如下:选择File-&g原创 2021-05-04 10:45:49 · 2686 阅读 · 0 评论 -
4.使用urllib实现第一个爬虫代码
import urllib.request调用urllib,request库的urlopen方法,并传入一个urlresponse =urllib.request.urlopen(‘https://www.baidu.com/’)打印响应数据类型print(type(response)) # <class ‘http.client.HTTPResponse’>打印属性或方法print(dir(response))常用方法1.获取状态码print(response.getco原创 2020-10-22 19:51:40 · 188 阅读 · 0 评论 -
5.urlopen方法介绍
urlopen方法它传入了一个百度首页的URL,使用的协议是HTTP,这是urlopen()方法最简单的用法。urlopen() 方法可以接收多个参数,该方法的定义格式如下:urllib.request.urlopen(url, data=None, [timeout,]*, cafile=None,capath=None, cadefault=False, context=None)上述方法定义中的参数详细介绍如下:( 1) url: 表示目标资源在网站中的位置,可以是一个表示URL地原创 2021-03-24 20:00:39 · 2020 阅读 · 0 评论 -
9.xpath概述
XPath 概述XPath ( XML Path Language的简写)即为XML路径语言作用:用于确定XML树结构中某一部分的位置。XPath 技术基于XML的树结构,能够在树结构中遍历节点(元素、属性等)。工作原理:XPath 使用路径表达式选取XML文档中的节点或者节点集,这些路径表达式与常规的计算机文件系统中看到的路径非常相似,代表着从一个节点到另一个或者一组节点的顺序,并以“/”字符进行分隔。注意: XPath 能够查询XML文档,也能够查询HTML文档。但是,它需要先借用lxml库原创 2021-05-07 20:03:46 · 989 阅读 · 0 评论 -
10.lxml简单的使用
为了能够在XML (关于XML技术,可参照htp://ww.w3school.comn.cn/xmnl/进行完整学习)文档树中准确地找到某个节点,引入了XPath的概念。1.XPath,是基于文档的层次结构来确定查找路径的2.区分正则表达式和XPath:(1)用正则表达式进行查找,则它会告诉你这个建筑本身有哪些特征,以及它的左边是什么,右边是什么。这样的描述限定查找的范围较大(2)而XPath会直接告诉你这个建筑位于“中国-北京-昌平区-建材城西路-金燕龙办公楼- -层",相比较而言,这种描述更加具原创 2021-05-07 20:02:35 · 523 阅读 · 0 评论 -
11.bs4简单的使用
bs4是一个HTML/XML的解析器,其主要功能是解析和提取HTML/XML数据。它不仅支持CSS选择器,而且支持Python标准库中的HTML解析器,以及lxml的XML解析器。通过使用这些转化器,实现了惯用的文档导航和查找方式,节省了大量的工作时间,提高了开发项目的效率。一、构建 BeautifulSoup对象from bs4 import BeautifulSoupsoup=BeautifulSoup(html, ‘lxml’)上述示例中,在创建BeautifulSoup实例时共传入了两个原创 2021-05-07 20:44:34 · 768 阅读 · 0 评论 -
url编码转换+get请求(乱码url)
import urllib.parse准备字典数据data = {‘host’:‘www.baidu.com’,‘name’:‘百度’}进行url编码data = urllib.parse.urlencode(data)print(data)#host=www.baidu.com&name=%E7%99%BE%E5%BA%A6url解码data = urllib.parse.unquote(data)print(data)#host=www.baidu.com&na原创 2020-10-22 20:07:11 · 669 阅读 · 0 评论 -
构造request对象post请求
import urllib.requestimport urllib.parse#案例: 发送post请求,http://httpbin.org/post;要求传入数据和指定请求头#1.构造request对象#2.构造数据(发送post请求必须传入相应数据既data参数)data = {‘name’:‘itcast’}#3.进行url编码(需要导入一个parse)data = urllib.parse.urlencode(data)#4.转化为bytes对象data = bytes(da原创 2020-10-22 19:54:27 · 1319 阅读 · 0 评论 -
urllib.request.build_opener()方法
‘’’目的:urlopen有些功能无法实现(代理,cookie等其他高级功能),如果要实现代理,需要自定义opener而不是urlopen1.相关Handler处理器创建处理器对象2. urllib.request.build_opener()方法,把处理器对象传到??生成一个opener对象3.使用opener对象open方法,打开请求获取响应如果程序所有请求都是用自定义opener,urllib2.instill_opener()定义全局‘’’import urllib.request原创 2020-10-22 20:18:56 · 5150 阅读 · 0 评论 -
设置代理服务器
‘’’目的:机器程序每秒发送请求太多,服务器识别出ip请求太多会发送错误代码,借助多个代理服务器,每秒发送一个请求,提高爬虫执行效率,可以隐藏自己(服务器只知道代理,不知道本机IP)‘’’import urllib.request‘’’#实现启用代理或不启用代理#1.定义参数proxy_switch = True #Falseif proxy_switch:proxies = {‘http’: ‘39.108.234.144:80’}else:proxies = {}‘’’#代原创 2020-10-22 19:45:42 · 368 阅读 · 0 评论 -
timeout超时设置
import urllib.request#设置超时参数:timeout,单位s秒;#response = urllib.request.urlopen(‘代理服务器ip’,timeout=3)#如果时间到了,还没响应,就报time out错误#问题:程序有很多请求,超过时间报错后不能继续运行#处理:超过时间报错后进行捕获,代理服务器iptry:response = urllib.request.urlopen(‘http://218.56.132.157:8080’,timeout=3.原创 2020-11-02 21:59:28 · 1827 阅读 · 0 评论 -
URLError异常和捕获
“”"产生原因主要:1.没有连接网络2.服务器连接失败3.找不到指定服务器使用:看一下request的url是否写错,如果没有,用try-except捕获异常,“”"import urllib.requestimport urllib.errorrequest = urllib.request.Request('http://www.baidu.com') #Request主要用来修饰,封装请求数据的try: response =urllib.request.urlopen(原创 2020-11-03 21:43:27 · 1099 阅读 · 0 评论