python爬虫

python爬虫之lxml模块

走远了吗. 提交于 2020-02-17 06:16:41
lxml模块:python用来解析xml和html模块,用这个模块就可以使用xpath语法。 **xpath(语法) 就相当于一个路径一样,可以匹配html和xml想要的内容数据** 1、什么xpath? xpath就是用来筛选html或者xml中元素语法。如果匹配标签和元素,则返回element对象,如果匹配到的是标签和text,则返回字符串 2、xml和html中一些名词。 元素 标签 属性 内容 3、xpath的语法 (1)选取节点 | . | 代表当前节点 | | … | 代表父节点 | | / | 从根节点开始 | | // | 文档的任意位置 | | nodename | 选取标签火元素 | | @属性名 | 选取属性名所对应的方法 | | text() | 选取内容 | (2)谓语:语言中就是用来限定主语的成分。 a、可以通过位置限定 [数字]选取第几个----> //body/div[3] ----> 选取页面内所有的body标签下的第三个div标签 [last()]:选取最后一个----> //body/div[last()] ----> 选取所有body标签下的最后一个div标签 [last()-1]:选取倒数第二个//body/div[last()-1] ----> 选取所有body标签下的倒数第二个div标签 [position()>1]:选取位置大于1--

python爬虫之Request库的使用

こ雲淡風輕ζ 提交于 2020-02-16 18:27:53
目录 一、Requests的安装 二、Request的使用 1、提取目标网站的代码 2、Request基本请求方式 3、Requests库的get()方法 4、Response 对象的属性 5、理解Requests库和Response的异常 6、爬取网页的通用代码框架 7、HTTP协议 三、爬取中国大学排名 Requests Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库 一、Requests的安装 pip install requests 二、Request的使用 1、提取目标网站的代码 import requests req = requests . get ( "https://www.baidu.com" ) print ( req . text ) 2、Request基本请求方式 方法 说明 requests.request() 构造一个请求,支撑以下各方法的基础方法 requests.get() 获取HTML网页的主要方法,对应于HTTP的GET requests.head() 获取HTML网页头信息的方法,对应于HTTP的HEAD requests.post() 向HTML网页提交POST请求的方法,对应于HTTP的POST requests.put() 向HTML网页提交PUT请求的方法

Python爬取mc皮肤【爬虫项目】

不打扰是莪最后的温柔 提交于 2020-02-15 17:54:45
首先,找到一个皮肤网站,其中一个著名的皮肤网站就是 https://littleskin.cn 。进入网站,我们就会见到一堆皮肤,这就是今天我们要爬的皮肤。给各位分享一下代码。 PS:另外很多人在学习Python的过程中,往往因为遇问题解决不了或者没好的教程从而导致自己放弃,为此我整理啦从基础的python脚本到web开发、爬虫、django、数据挖掘等【PDF等】需要的可以进Python全栈开发交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题有老司机解决哦,一起相互监督共同进步 import requests import re import time import json download_sucess = True time.sleep(1.5) pictures = input('你想下载多少张皮肤:') while pictures.isdigit() == False: print("请输入数字!") pictures = input('你想下载多少张皮肤:') Path = input('请输入保存的路径:') print("请稍等......") pictures = int(pictures) for i in range(1,pictures+1): url = 'https://littleskin

Python 与 http请求

橙三吉。 提交于 2020-02-15 07:10:40
Python 与 http请求 文章目录 Python 与 http请求 HTTP 基本原理 URI & URL 超文本 HTTP & HTTPS HTTP 请求过程 请求与响应 请求(Request) 响应(Response) 会话 和 Cookies 会话 Cookies 代理 网页基础 HTML, 超文本标记语言 CSS, 层叠样式表 JavaScript, 脚本语言 网页结构 选择器 用 Python 发起 HTTP 请求 urllib urllib.request 发送请求 `urlopen()`: 发送请求 `urlopen()` 带 `data` 参数: 用 POST 发送一些数据 `urlopen()` 带 `timeout` 参数: 如果请求超出了设置的这个时间,还没有得到响应,就会抛出异常。 Request 类构建 Headers Request类 的构建参数 高级用法 Handler Opener 处理 `HTTP 基本认证` 使用 `代理` 处理 Cookies 获取 Cookies 取用 Cookies urllib.error 处理异常 URLError: HTTPError 综合使用: urllib.parse 解析链接 quote() 将内容转化为 URL 编码的格式 urlparse() URL的识别和分段 urlunparse() 合成URL

python爬虫——requests里面的response对象

a 夏天 提交于 2020-02-15 05:48:11
import requests class R ( object ) : def __init__ ( self ) : url = "http://www.baidu.com" header = { # 浏览器的版本 "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" } self . response = requests . get ( url , headers = header ) def run ( self ) : data = self . response . content #获取请求头 request_headers = self . response . request . headers print ( request_headers ) #获取响应头 response_header = self . response . headers print ( response_header ) #响应状态 code = self . response . status_code print ( code ) #请求的cookie request

Python 与 网络爬虫

好久不见. 提交于 2020-02-15 02:11:41
Python 与 网络爬虫 文章目录 Python 与 网络爬虫 爬虫的基本原理 获取网页 提取信息 保存数据 自动化程序 爬虫实践 -- 抓取电影排行 目标 准备 分析 设计 实现 调试 完成 Ajax 数据爬取 Ajax 简介 发送请求 解析内容 渲染网页 Ajax 分析方法 Python 模拟 Ajax 请求 本文由 CDFMLR 原创,收录于个人主页 https://clownote.github.io ,并同时发布到 CSDN。本人不保证 CSDN 排版正确,敬请访问 clownote 以获得良好的阅读体验。 爬虫的基本原理 爬虫是 获取 网页并 提取 和 保存 信息的 自动化程序 。 可以说,我们能在浏览器中看到的一切内容,都可以通过爬虫得到(包括那些由JavaScript渲染出来的网页)。 爬虫主要解决以下几个问题: 获取网页 构造一个请求并发送给服务器,然后接收到响应并将其解析出来。 我们可以用urllib、 requests 等库来帮助我们实现 HTTP请求操作,请求和响应都可以用类库提供的数据结构来表示,得到响应之后只需要解析数据结构中的 Body 部分即可,即得到网页的源代码。 提取信息 分析网页源代码,从中提取我们想要的数据。 最通用的方法是采用 正则表达式 提取,这是一个万能的方法,但是在构造正则表达式时比较复杂且容易出错。 使用 Beautiful

python成功爬取拉勾网——初识反爬(一个小白真实的爬取路程,内容有点小多)

淺唱寂寞╮ 提交于 2020-02-13 19:04:48
python成功爬取拉勾网(一个小白的心里路程) 最开始想爬取拉钩是因为半年前上python实验课的时候,老师给了两个任务,一个时爬取糗百的笑话内容,另一个时爬取拉勾网的职位信息,当时因为课时紧张的缘故,老师讲解了关于爬虫的相关的库(requests,BeautifulSoup库等)的基本使用方法,发下了爬取糗百网的源码,让我们自己试一试,说是拉勾网不好爬取,目前的水平不够。疫情在家这几天我基本可以容易的爬取静态网页相关的内容,便想的试试爬取拉钩。 先观察网页源码: 很容易从源码看出所有相关的信息都放在li标签的属当中,具体的工资值放在span标签当中 我用直接用原来爬取静态网页的方法直接爬取: import bs4 import requests import re from bs4 import BeautifulSoup url = 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=' try : hd = { 'user-agent' : 'chorme/10' } r = requests . get ( url , headers = hd ) r . raise_for_status ( ) r . encoding = r . apparent_encoding

爬虫系列(一) 网络爬虫简介

放肆的年华 提交于 2020-02-13 03:46:20
写在前面的话 :最近博主在学习网络爬虫的相关技术(基于 Python 语言),作为一个学习的总结,打算用博客记录下来,也希望和大家分享一下自己在学习过程中的点点滴滴,话不多说,让我们马上开始吧 一、爬虫基本简介 什么是网络爬虫,这里先引用一下 百度百科 上的解析: 网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本 说起网络爬虫,人们常常会用这样一个比喻:如果把互联网比喻成一张网,那么网络爬虫就可以认为是一个在网上爬来爬去的小虫子,它通过网页的链接地址来寻找网页,通过特定的搜索算法来确定路线,通常从网站的某一个页面开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有网页都抓取完为止 二、爬虫基本原理 下面的图片很好的展现了一般网络爬虫的基本过程,下面让我们来详细解释一下这张图片的含义吧 1、发送请求 爬虫的第一个步骤就是对起始 URL 发送请求,以获取其返回的响应 值得注意的是,发送请求实质上是指发送请求报文的过程 请求报文 包括以下四个方面:请求行、请求头、空行和请求体 但是,往往在使用 Python 相关的网络请求库发送请求时,只需关注某些特殊的部分即可,而非完整的请求报文,下面我们将以粗体的形式标识出我们需要特别关注的部分 (1)请求行 请求行由请求方法、请求 URL 和 HTTP 协议版本

Python3(十一) 原生爬虫

守給你的承諾、 提交于 2020-02-12 19:40:35
一.爬虫实例 1.原理:文本分析并提取信息——正则表达式。 2.实例目的:爬取熊猫TV某个分类下面主播的人气排行 分析网站结构 操作:F12查看HTML信息,Ctrl+Shift+C鼠标选取后找到对应的HTML。 3.步骤: 前奏: 1、明确目的(分析抓取目的确定抓取页面) 2、找到数据对应网页 3、分析网页的结构,找到数据所在标签的位置 执行: 4、模拟HTTP请求,向服务器发送请求,获取到服务器返回给我们的HTML 5、用正则表达式提取我们要的数据 ...... 4.代码 二. VSCode中调试代码 断点调试:F5启动,F10单步,F5跳断点,F11进内部 三.HTML结构分析基本原则 寻找到标签、标识符,使之能够定位要抓取的信息。 1、尽量选取具有唯一性的标签 2、尽量选取最接近于数据的标签 四.数据提取层级分析及原则 1.可以把两个数据看成是一组数据并再次寻找标签。 2.尽量选取可以闭合的标签(父级标签),并包裹其需要的数据 五.正则分析HTML及具体流程 ''' This is a spider,模块注释 ''' from urllib import request import re class Spider(): ''' This is a spider class ''' url = 'https://www.panda.tv/cate/lol' root

python爬虫

末鹿安然 提交于 2020-02-12 16:18:00
爬取河北省卫生健康委员会疫情通报标题目录,由于标题中有其他通报,所以需要筛选出所有关于疫情情况的标题,并爬取地址链接,代码如下: from lxml import etreeimport reimport requests def get_url(url): strhtml = requests.get(url) # Get方式获取网页数据 tree = etree.HTML(strhtml.text) return tree if __name__ == '__main__': url = 'http://www.hebwst.gov.cn/index.do?cid=326&templet=list' list_url = get_url(url) tltle_ = list_url.xpath('//tr/td/a//text()') url_ = list_url.xpath('//tr/td/a/@href') l = [] url_tltles = [] #疫情标提列表 url_list = [] #疫情详情页列表 for i in tltle_: if i == '\r\n\t\t\t\t\t\t': pass else: l.append(i) for index,i in enumerate(l): if '河北省新型冠状病毒' not in i : pass