python爬虫

爬虫之requests库

荒凉一梦 提交于 2020-03-14 18:55:33
想用selenium实现B站自动登录以及点赞等功能,便查阅如何解决滑动解锁,然而是有关爬虫的内容,便开始学习爬虫,没过多久又想把记录自己生活的网站做起来,朋友便推荐了layui框架倒腾了一晚上自我觉得是做给后端程序员入门的框架,Vue又感觉太难,便开始搞bootstrap,没搞出个所以然来。因为闲着心情烦躁便开始重新学习爬虫。每次写点文章总是碎碎念一段,有人在评论去区说我矫情,是真的。 http请求返回response对象属性 编码问题 import requests r=requests.get('http://www.baidu.com/') r.encoding='gbk' 或 r.encoding=r.apparent_encoding #百度返回的页面内容为ISO-8859-1编码的,如果不设置成gbk则乱码 print(response.text) requests的库异常处理 requests库的主要方法 1 import requests 2 r = requests.get('https://www.cnblogs.com/') 3 r = requests.head('http://httpbin.org/get') 4 r = requests.post('http://httpbin.org/post',key='value') 5 r = requests

Python爬虫笔记【一】模拟用户访问之设置请求头 (1)

偶尔善良 提交于 2020-03-14 07:38:15
学习的课本为《python网络数据采集》,大部分代码来此此书。   网络爬虫爬取数据首先就是要有爬取的权限,没有爬取的权限再好的代码也不能运行。所以首先要伪装自己的爬虫,让爬虫不像爬虫而是像人一样访问网页。废话不多说开始伪装。   1.修改请求头   这里要用到python的requests的模块,首相介绍一下http请求头,它就是你每次在访问网页时,向服务器传输的一组属性和配置信息。下面有七个字段被大多数浏览器用来初始化网络请求。 属性 内容 Host https://www.google.com/ Connection keep-alive Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 Referrer https://www.google.com/ Accept-Encoding gzip,deflate,sdch Accept-Language en-US,en;q=0.8

Python爬虫连载14-动态HTML、PhantomJS和Chromedriver

主宰稳场 提交于 2020-03-14 01:47:28
一、动态HTML 1.爬虫跟反爬虫 2.动态HTML连载 (1)JavaScript (2)jQuery (3)Ajax (4)DHTML (5)Python采集动态数据 从JavaScript代码入手采集​;Python第三方库运行JavaScript,直接采集你在浏览器中看到的页面 二、Selenium + PhantomJS 1.Selenium:web自动化测试工具 (1)​自动加载页面;(2)​获取数据;(3)截屏 ​(4)官方文档:http://selenium-python.readthedocs.io/index.html 2.PhantomJS (1)基于WebKit的无界面的浏览器 (2)​官方网站:http://phantomjs.org/download.html 3.Selenium库有一个WebDriver的API 4.WebDriver可以跟页面上的元素进行各种交互,用它可以来进行爬取 """ 通过webdriver操作模拟进行查找 """ from selenium import webdriver import time #通过keys模拟键盘 from selenium.webdriver.common.keys import Keys #操作哪个浏览器就对哪个浏览器建立一个实例 #自动按照环境变量查找相应的浏览器 driver =

scrapy框架

一世执手 提交于 2020-03-13 18:43:16
一、介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。 Scrapy 是基于twisted框架开发而来,twisted是一个流行的事件驱动的python网络框架。因此Scrapy使用了一种非阻塞(又名异步)的代码来实现并发。整体架构大致如下 在Scrapy的数据流是由执行引擎控制,具体流程如下: 1、spiders产生request请求,将请求交给引擎 2、引擎(EGINE)吧刚刚处理好的请求交给了调度器,以一个队列或者堆栈的形式吧这些请求保存起来,调度一个出来再传给引擎 3、调度器(SCHEDULER)返回给引擎一个要爬取的url 4、引擎把调度好的请求发送给download,通过中间件发送(这个中间件至少有 两个方法,一个请求的,一个返回的), 5、一旦完成下载就返回一个response,通过下载器中间件,返回给引擎,引擎把response 对象传给下载器中间件,最后到达引擎 6、引擎从下载器中收到response对象,从下载器中间件传给了spiders

python爬虫---从零开始(六)Selenium库

£可爱£侵袭症+ 提交于 2020-03-13 16:52:26
什么是Selenium库:   自动化测试工具,支持多种浏览器。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。 爬虫中主要用来解决JavaScript渲染的问题。用于驱动浏览器,并且给予浏览器动作。 安装Selenium库:pip3 install selenium Selcnium库的使用详解:    在使用之前我们需要安装webDriver驱动,具体安装方式,自行百度,切记版本对应。    基本使用: #!/usr/bin/env python # -*- coding: utf-8 -*- # 基本用法 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait browser = webdriver.Chrome() try: browser.get(

Python爬虫爬取一篇韩寒新浪博客

喜欢而已 提交于 2020-03-13 16:28:36
网上看到大神对Python爬虫爬到非常多实用的信息,认为非常厉害。突然对想学Python爬虫,尽管自己没学过Python。但在网上找了一些资料看了一下,看到爬取韩寒新浪博客的视频。共三集,第一节讲爬取一篇博客,第二节讲爬取一页博客。第三集讲爬取所有博客。 看了视频。也留下了代码。 爬虫第一步:查看网页源码: 第一 篇博客的代码为蓝底的部分<a title="" target="_blank" href="http://blog.sina.com.cn/s/blog_4701280b0102eo83.html">《论电影的七个元素》——关于我对电…</a> 对照其它博客的代码,找出公共部分“< title=‘’ ‘href=’,'.html' 代码为: # -*- coding : -utf-8 -*- import urllib str0 ='<a title="" target="_blank" href="http://blog.sina.com.cn/s/blog_4701280b0102eo83.html">《论电影的七个元素》——关于我对电…</a>' title = str0.find(r'<a title') #print title href = str0.find(r'href=') #print href html = str0.find(r'.html')

07爬虫相关

邮差的信 提交于 2020-03-13 11:13:27
一. http/https相关知识 1. http与https 1)HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法。 2)HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层。 3)SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全。 2. get与post 1)GET是从服务器上获取数据,POST是向服务器传送数据 2)GET请求参数显示,都显示在浏览器网址上,HTTP服务器根据该请求所包含URL中的参数来产生响应内容,即“Get”请求的参数是URL的一部分。 例如: http://www.baidu.com/s?wd=Chinese 3)POST请求参数在请求体当中,消息长度没有限制而且以隐式的方式进行发送,通常用来向HTTP服务器提交量比较大的数据(比如请求中包含许多参数或者文件上传操作等),请求的参数包含在“Content-Type”消息头里,指明该消息体的媒体类型和编码, 注意:避免使用Get方式提交表单,因为有可能会导致安全问题。 比如说在登陆表单中用Get方式

Python爬虫入门 | 爬取豆瓣电影信息

拟墨画扇 提交于 2020-03-12 17:04:25
这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源。看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬虫的大门啦~ ps注意:很多人学Python过程中会遇到各种烦恼问题,没有人帮答疑容易放弃。为此小编建了个Python全栈免费答疑.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,不懂的问题有老司机解决里面还有最新Python教程项目可拿,,一起相互监督共同进步! 好啦,正式开始我们的第二节课《爬取豆瓣电影信息》吧!啦啦哩啦啦,都看黑板~ 1. 爬虫原理 1.1 爬虫基本原理 听了那么多的爬虫,到底什么是爬虫?爬虫又是如何工作的呢?我们先从“爬虫原理”说起。 爬虫又称为网页蜘蛛,是一种程序或脚本。但重点在于:它能够按照一定的规则,自动获取网页信息。爬虫的通用框架如下: 1.挑选种子URL; 2.将这些URL放入待抓取的URL队列; 3.取出待抓取的URL,下载并存储进已下载网页库中。此外,将这些URL放入待抓取URL队列,进入下一循环; 4.分析已抓取队列中的URL,并且将URL放入待抓取URL队列,从而进入下一循环。 咳咳~ 还是用一个具体的例子,来说明吧! 1.2 一个爬虫例子 爬虫获取网页信息和人工获取信息,其实原理是一致的,比如我们要获取电影的“评分”信息:

Python爬虫之获取虎扑网球员得分数据

早过忘川 提交于 2020-03-12 08:50:28
文章目录 1、前言 2、网站分析 3、代码编写 4、完整代码 1、前言   目前我的爬虫系列更新到了正则表达式,我们就可以用请求库+正则表达式爬取一些简单的页面了。因为我个人非常喜欢打篮球,所以就选取了虎扑网作为爬取对象。当然,这只是一个入门级案例,后面会再写一篇使用解析库的方式爬取虎扑网数据。 2、网站分析   想要爬取一个网站的数据,就一定要分析该网站的网页源代码。此时,通过浏览器登录虎扑网,点开NBA得分榜,完整网址为: 虎扑网NBA得分榜 。   目前得分榜第一位是马赛克队后卫,整个得分榜共有5页,237名球员。   通过点击第二页,第三页可以分析得知网址的构成为: https://nba.hupu.com/stats/players/pts/2、https://nba.hupu.com/stats/players/pts/3 ,变化的只有最后的页数,所以可以通过字符串拼接构造网址。然后点击f12查看源代码,发现球员数据均在一个类名为players_table的表格中,球员数据都在每一个tr中,但是由于第一行是行头,不需要爬进去,所以要注意把这一行排出去。 3、代码编写 首先,定义一个获取HTML的方法 def getHtml ( pageNum ) : ''' 传入参数页数,获得该链接的HTML内容 :param pageNum: 页数 :return: HTML内容 '

爬虫没有数据结果

泪湿孤枕 提交于 2020-03-12 05:04:37
爬虫没有数据结果 小白学python爬虫,使用scrapy框架进行爬取网站数据,遇到爬取数据的时候没有返回的结果,代码是根据视频里的老师敲的,看着挺简单的一个程序,网上看了很多方法都没解决,求大神帮助。 这是代码 #- - coding: utf-8 - - import scrapy from scrapy.http.response.html import HtmlResponse from scrapy.selector.unified import SelectorList class SpiderDxysSpider(scrapy.Spider): name = ‘spider_dxys’ allowed_domains = [‘dxy.com/search/health’] start_urls = [f’https://dxy.com/view/i/recommend/referral/list?{page_index}&items_per_page=5&q=%E6%8A%91%E9%83%81%E7%97%87&spell_check=false&postcode=000001/’ for page_index in range(1,6)] def parse(self, response): # selectorList hospitaldivs=response