网络爬虫

第一个python网络爬虫总结

守給你的承諾、 提交于 2020-02-29 07:02:17
这个程序其实就是模仿用户的网页访问操作。 先从主页上获取大的商品分类,再一级一级地遍历所有的小分类。在最后得到商品列表,再遍历每个商品页,从商品页是抓取有效的信息。 这里,我对一些关键点做个总结,以便以后用到好回顾。 一,怎么访问网页? # 根据url获取网页正文 def get_webpage(url): headers = {\ 'User-Agent' : 'Mozilla/5.0 (X11; Linux i686; rv:34.0) Gecko/20100101 Firefox/34.0',\ 'Accept' : 'text/html',\ 'Connection' : 'keep-alive'} try: request = urllib2.Request(url, None, headers) response = urllib2.urlopen(request, timeout=120) webpage = response.read() response.close() return webpage #except urllib2.HTTPError, e: # print('HTTPError: ' + str(e.code)) #except urllib2.URLError, e: # print('URLError: ' + str(e.reason))

学习笔记 网络爬虫篇之 [数据清洗]

寵の児 提交于 2020-02-27 18:19:48
文章目录 一、XPath语法和lxml模块 1.Xpath语法 1.1 什么是XPath? 1.2 XPath开发工具 1.3 XPath语法 选取摘要: 谓语: 通配符 选择多个路径: 二、lxml库 1、基本使用: 2、在lxml中使用XPath语法: 2.1 获取所有li标签: 2.2 获取所有li元素下的所有类属性的值: 2.3 获取li标签下href为www.baidu.com的a标签: 2.4 获取li标签下所有span标签: 2.5 获取li标签下的a标签里的所有类别: 2.6 获取最后一个li的a的href属性对应的值: 2.7获取倒数第二个li元素的内容: 2.8 获取倒数第二个li元素的内容的第二种方式: 使用requests和xpath爬取电影天堂 三、BeautifulSoup4库 1、`BeautifulSoup4`库 2、几大解析工具对比: 2.1 简单使用: 2.2 四个常用的对象: 2.2.1 Tag: 2.2.2 NavigableString: 2.2.3 BeautifulSoup: 2.2.4 Comment: 3.遍历文档树: 3.1 contents和children: 3.2 strings 和 stripped_strings 4.搜索文档树: 4.1 find和find_all方法: 4.2 select方法: 四

【Python网络爬虫整理记录 D:04】——关于爬虫伪装中常见headers参数详解以及常见错误代码及错误原因

血红的双手。 提交于 2020-02-27 11:18:50
文章目录 常见Headers参数详解 Accept Accept-Language Accept-Encoding Cookie Referer User-Agent Content-Type Origin 常见错误代码及错误原因 User-Agent集合(列表形式) 常见Headers参数详解 Accept 请求报头域,用于指定客户端可接受哪些类型的的信息 需要注意的是它只是建议服务器,而并非就是你写成什么他就返回给你什么。 Accept-Language 指定客户端可接受的语言类型 Accept-Encoding 指定客户端可接受的内容编码 需注意其中一个gzip编码,有时候爬取内容返回一直是乱码,问题可能会处在这个参数,它表示客户端可接受压缩后的内容。 Cookie 也常用复数形式Cookies。这是最重要的请求头信息之一。网站为了辨别用户进行会话跟踪二存储在用户本地的数据。一般可以直接复制,对于一些变化的可以选择构造。 Referer 当浏览器向web服务器发送请求的时候,一般会带上Referer,标识这个请求是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。用于统计访问量、防盗链处理等。 User-Agent 向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。在做爬虫时加上此信息,可以伪装为浏览器;如果不加

Python的学习笔记案例8--空气质量指数计算5.0

风流意气都作罢 提交于 2020-02-24 10:48:24
之前都是使用提前准备好的文件来获取数据,时效性很差。 为了更有效、更快地获取并利用网络信息并工作提高效率,出现了网络爬虫。 利用网络爬虫实时获取城市的空气质量指数。 什么是网络爬虫? 自动抓取互联网信息的程序;利用互联网数据进行分析、产品开发。 步骤: 1、通过网络链接获取网页内容 2、对获取的网页内容进行处理 requests模块 requests模块是一个简洁且简单的处理HTTP请求的工具 支持非常丰富的链接访问功能,包括URL获取,HTTP会话,Cookie记录等。 requests网页请求 函数 含义 get() 对应HTTP的GET方式 post() 对应HTTP的POST方式,用于传递用户数据 requests对象属性 函数 含义 status_code HTTP请求的放回状态,200表示链接成功,400表示失败。 text HTT相应内容的字符串形式,即url对应的页面内容 直接上代码: """ 作者:lanxingbudui 日期:2020-02-24 功能:AQI计算 版本:5.0 """ import requests def get_html_text(url): """ 返回url的文本 """ r = requests.get(url, timeout=30) print(r.status_code) return r.text def main(): "

scrapy(网络爬虫)———CrawlSpider(规则爬虫)

孤街浪徒 提交于 2020-02-24 03:00:14
CrawlSpider(规则爬虫) 一 .简介: 它是Spider的派生类,Spider类的设计原则是只爬取start_url列表中的网页, 而CrawlSpider类定义了一些规则(rule)来提供跟进link的方便的机制,从爬取的网页中获取link并继续爬取的工作更适合。 二.创建爬虫命令: 1.前提是已经创建好爬虫项目了,若没有创建好项目,请使用 scrapy startproject 项目名 进入项目目录 2.在项目目录下执行创建规则爬虫:scrapy genspider -t crawl 爬虫名称 爬取域名 三.在pycharm中编写规则爬虫文件 1. 爬虫文件中导入的 Link Extractors: class scrapy.linkextractors.LinkExtractor 作用是: 每个LinkExtractor有唯一的公共方法是 extract_links(),它接收一个 Response 对象, 类中定义了 Response中的链接的提取规则, 并返回一个 scrapy.link.Link 对象, 返回的是符合链接匹配对象的列表 。 Link Extractors要实例化一次,并且extract_links 方法会根据不同的 response 调用多次提取链接。 2. Link Extractors 中的主要参数: allow:满足括号中“正则表达式

python网络爬虫之图片链家在技术.seleninum和PhantonJS

ⅰ亾dé卋堺 提交于 2020-02-22 00:49:26
一.什么是图片懒加载? 案例分析:抓取站长素材http://sc.chinaz.com/中的图片数据 #!/usr/bin/env python # -*- coding:utf-8 -*- import requests from lxml import etree if __name__ == "__main__": url = 'http://sc.chinaz.com/tupian/gudianmeinvtupian.html' headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', } #获取页面文本数据 response = requests.get(url=url,headers=headers) response.encoding = 'utf-8' page_text = response.text #解析页面数据(获取页面中的图片链接) #创建etree对象 tree = etree.HTML(page_text) div_list = tree.xpath('//div[@id="container"]/div')

【python爬虫 系列】1.理解网络爬虫

落爺英雄遲暮 提交于 2020-02-20 23:15:23
第一节:理解网络爬虫 1.1网络爬虫的定义 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。 当今最大的网络是互联网,最大的爬虫就是各类搜索引擎,包括谷歌丶百度等。网络爬虫就是按照一定规则去爬去人类所需要的信息的程序,主要通过对URL的请求来实现。一般来说,从搜索引擎这类爬虫搜索到的信息是非常宽泛的,而且夹杂着各种广告,信息是不纯粹的,也有可能不是我们需要的。这种时候,就需要一些聚焦于某一方面信息的爬虫来为我们服务,比方说,专门爬取某一类书的信息,在网站上浏览的时候,可能会有形形色色的图片和一些其他信息干扰我们,如果编写网络爬虫的话,就可以单单把自己想要的信息存储下来,以便数据分析,提取有用的信息。 像我们平时用的,谷歌浏览器、火狐浏览器、IE浏览器等,这些浏览器不是搜索引擎,主要的作用是:渲染我们的这些网页。 其实,这个浏览器和我们平时写的小爬虫最大的区别就是:我们平时的小爬虫抓取的网页源代码的不渲染的,直接把网页的源代码 HTML 展现出来,而浏览器是会加载 HTML 相关的 CSS、JS 等。爬虫是不会执行这些关联的文件。 1.2网络爬虫的原理 我们写了一个简单的网络爬虫,

python 网络爬虫项目Choice1

戏子无情 提交于 2020-02-18 03:14:51
参考链接: 网络爬虫(python项目) https://blog.csdn.net/qq_37050329/article/details/83021302 一.request+正则表达式爬取猫眼电影 1.什么是request Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库 如果你看过上篇文章关于urllib库的使用,你会发现,其实urllib还是非常不方便的,而Requests它会比urllib更加方便,可以节约我们大量的工作。(用了requests之后,你基本都不愿意用urllib了)一句话,requests是python实现的最简单易用的HTTP库,建议爬虫使用requests库。 默认安装好python之后,是没有安装requests模块的,需要单独通过pip安装 import requests response = requests . get ( "https://www.baidu.com" ) print ( type ( response ) ) print ( response . status_code ) print ( type ( response . text ) ) print ( response . text ) print ( response . cookies )

网络爬虫(一)- 基本使用

≯℡__Kan透↙ 提交于 2020-02-15 02:35:05
get请求 get请求的基本使用 // 1. 打开浏览器,创建HttpClient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); // 2.输入网址,发起get请求创建HttpGet对象 HttpGet get = new HttpGet("http://112.124.1.187/index.html?typeId=16"); // 3.发情请求,返回响应,使用HttpClient对象发起请求 CloseableHttpResponse response = httpClient.execute(get); // 4.解析响应,获取数据 if(response.getStatusLine().getStatusCode() == 200){ HttpEntity entity = response.getEntity(); String content = EntityUtils.toString(entity,"utf-8"); System.out.println(content); } get请求带参数(可以直接写在地址后,但是构成硬编码) // 1. 打开浏览器,创建HttpClient对象 CloseableHttpClient httpClient = HttpClients

网络爬虫(二)

回眸只為那壹抹淺笑 提交于 2020-02-15 02:31:14
在我们抓取到页面之后,还需要对页面进行解析。整个页面都是字符串的形式,可以使用字符串处理工具来解析页面,也可以使用正则表达式,但这些方法都会带来很大的开发成本。所以我们需要一款准们解析 html 页面的工具。 Jsoup jsoup是一款 java 的 HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 主要功能: 1. 从URL,文件或字符串中解析HTML; 2. 使用DOM 或 CSS选择器来查找、取出数据; 3. 可操作 HTML元素、属性、文本(基本不使用) 使用: 1. 导入依赖坐标(jsoup、commons-io、commons-lang3) 2.1. 测试代码,解析URL @Test public void urlFun() throws Exception { // 解析URL地址,参数:访问的url,访问时的超时时间 Document doc = Jsoup.parse(new URL("http://112.124.1.187/"),10000); // 使用标签选择器 String title = doc.getElementsByTag("title").first().text(); System.out.println(title); }