python爬虫

深入理解协程(四):async/await异步爬虫实战

邮差的信 提交于 2020-01-18 12:18:09
本文目录: 同步方式爬取博客标题 async/await异步爬取博客标题 本片为深入理解协程系列文章的 补充 。 你将会在从本文中了解到: async/await 如何运用的实际的爬虫中。 案例 从CSDN上批量爬取指定文章的标题。文章列表如下: urls = [ 'https://blog.csdn.net/Jmilk/article/details/103218919', 'https://blog.csdn.net/stven_king/article/details/103256724', 'https://blog.csdn.net/csdnnews/article/details/103154693', 'https://blog.csdn.net/dg_lee/article/details/103951021', 'https://blog.csdn.net/m0_37907797/article/details/103272967', 'https://blog.csdn.net/zzq900503/article/details/49618605', 'https://blog.csdn.net/weixin_44339238/article/details/103977138', 'https://blog.csdn.net

python爬虫学习(九)妹子图分页爬取

时光总嘲笑我的痴心妄想 提交于 2020-01-18 07:29:30
就是把url换成了通配符 比较简单 # -*- coding: utf-8 -*- import requests import re import os if __name__ == '__main__': #创建一个文件夹,保存所有图片 if not os.path.exists('./MMLibs'): os.mkdir('./MMLibs') headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36' } #设置通用url通用模板 url='https://www.2717.com/tag/434_%d.html' #pageNum=2 for pageNum in range(0,6): #对应页码的url new_url= format (url % pageNum) #使用通用爬虫对url对应的页面整张爬取 page_text = requests.get(url=new_url,headers=headers).text #使用聚焦爬虫进行解析 ex = '<li>.*?<img.*?src="(.*?)".*?</li>' img_src_list=

Python 简单网页爬虫

☆樱花仙子☆ 提交于 2020-01-17 23:38:13
网上的妹子图爬虫:只爬取一个人物相册 import requests from bs4 import BeautifulSoup headers = { 'User-Agent':'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)', 'Referer':'http://www.mzitu.com' } # 初始链接 start_url = 'https://www.mzitu.com/161470' start_html = requests.get(start_url,headers=headers) #生成一个response对象 # print(start_html.text) #text是类型,如果是多媒体,则是content soup = BeautifulSoup(start_html.content,'lxml') max_span=soup.find('div',class_='pagenavi').find_all('span')[-2].get_text() for page in range(1,int(max_span)+1): page_url = start_url+'/'+str(page) #给初始链接加上页码数,就是某页的链接地址 image_page = requests.get(page

Python爬虫实战五之模拟登录淘宝并获取所有订单

笑着哭i 提交于 2020-01-17 16:07:19
经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持。 温馨提示 更新时间,2016-02-01,现在淘宝换成了滑块验证了,比较难解决这个问题,以下的代码没法用了,仅作学习参考研究之用吧。 本篇内容 1. python模拟登录淘宝网页 2. 获取登录用户的所有订单详情 3. 学会应对出现验证码的情况 4. 体会一下复杂的模拟登录机制 探索部分成果 1. 淘宝的密码用了AES加密算法,最终将密码转化为256位,在POST时,传输的是256位长度的密码。 2. 淘宝在登录时必须要输入验证码,在经过几次尝试失败后最终获取了验证码图片让用户手动输入来验证。 3. 淘宝另外有复杂且每天在变的 ua 加密算法,在程序中我们需要提前获取某一 ua 码才可进行模拟登录。 4. 在获取最后的登录 st 码时,历经了多次请求和正则表达式提取,且 st 码只可使用一次。 整体思路梳理 1. 手动到浏览器获取 ua 码以及 加密后的密码,只获取一次即可,一劳永逸。 2. 向登录界面发送登录请求,POST 一系列参数,包括 ua 码以及密码等等,获得响应,提取验证码图像。 3. 用户输入手动验证码,重新加入验证码数据再次用 POST 方式发出请求,获得响应,提取 J_Htoken。 4. 利用 J_Htoken 向 alipay

python爬虫备忘录

柔情痞子 提交于 2020-01-17 06:08:28
我都不知道多久没有发过博文了,伴随着毕业的到来,论文和实习,都一起到来了,可能我以后也很少发布编程类的文章了,更多的将会注重于网络安全文章的发布了,windowsAPI的文章将会逐渐从我的博文中删除,以后将会不定期更新webdirscan,weblogon_brust等的python技术文章,二进制或者手机APP类型的,很感叹自己一路走过来,学习了不少的知识,也遇到过很多大佬,向他们学习了一些知识,到如今,我还是觉得脚踏实地的走比较靠谱。之后我会陆续更新我的开源webdirscan软件,开源一些信息收集的小工具。 爬虫环境配置 selenium 描述:模拟浏览器访问,有界面 安装: pip3 install selenium 基本使用: import selenium from selenium import webdriver driver=webdriver.Chrome() chromedriver 描述:谷歌驱动 安装:pip install chromedriver 基本使用: import selenium from selenium import webdriver driver=webdriver.Chrome() phantomjs 描述:模拟浏览器访问,无界面 安装: 下载https://phantomjs.org/download 配置: export

很多人见过并且用过爬虫,但极少人懂得这些爬虫概念!

匆匆过客 提交于 2020-01-17 03:26:53
作为程序员,相信大家对“爬虫”这个词并不陌生,身边常常会有人提这个词,在不了解它的人眼中,会觉得这个技术很高端很神秘。不用着急,我们的爬虫系列就是带你去揭开它的神秘面纱,探寻它真实的面目。 爬虫是什么 网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 通俗地讲,我们把互联网比作一张大蜘蛛网,每个站点资源比作蜘蛛网上的一个结点,爬虫就像一只蜘蛛,按照设计好的路线和规则在这张蜘蛛网上找到目标结点,获取资源。 为什么使用爬虫 为什么我们需要使用爬虫呢? 大家可以想象一下一个场景:你非常崇拜一个微博名人,对他的微博非常着迷,你想把他十年来微博上的每一句话摘抄下来,制作成名人语录。这个时候你怎么办呢?手动去 Ctrl+C 和 Ctrl+V 吗?这种方法确实没错,数据量小的时候我们还可以这样做,但是数据成千上万的时候你还要这样做吗? 我们再来想象另一个场景:你要做一个新闻聚合网站,每天需要定时去几个新闻网站获取最新的新闻,我们称之为 RSS 订阅。难道你会定时去各个订阅网站复制新闻吗?恐怕个人很难做到这一点吧。 上面两种场景,使用爬虫技术可以很轻易地解决问题。所以,我们可以看到,爬虫技术主要可以帮助我们做两类事情:一类是数据获取需求,主要针对特定规则下的大数据量的信息获取

python爬虫

北战南征 提交于 2020-01-17 01:31:56
在看这篇文章之前,需要大家掌握的知识技能: python基础 html基础 http状态码 让我们看看这篇文章中有哪些知识点: get方法 post方法 header参数,模拟用户 data参数,提交数据 proxies参数,使用代理 进阶学习 安装上requests库 pip install requests 先来看下帮助文档,看看requests的介绍,用python自带的help命令 import requests help(requests) output: Help on package requests: NAME requests DESCRIPTION Requests HTTP Library ~~~~~~~~~~~~~~~~~~~~~ Requests is an HTTP library, written in Python, for human beings. Basic GET usage: >>> import requests >>> r = requests.get(‘https://www.python.org’) >>> r.status_code 200 >>> ‘Python is a programming language’ in r.content True … or POST: >>> payload = dict(key1=

Python爬虫连载3-Post解析、Request类

心已入冬 提交于 2020-01-17 00:56:54
一、访问网络的两种方法 1.get:利用参数给服务器传递信息;参数为dict,然后parse解码 2.post:一般向服务器传递参数使用;post是把信息自动加密处理;如果想要使用post信息,需要使用到data参数 3.Content-Type:application/x-www.form-urlencode 4.Content-Length:数据长度 5.简而言之,一旦更改请求方法,请注意其他请求头信息相适应 6.urllib.parse.urlencode可以将字符串自动转换为上面的信息。 案例:利用parse模块模拟post请求分析百度翻译:分析步骤: (1)打开谷歌浏览器,F12 (2)尝试输入单词girl,发想每敲击一个字母后都会有一个请求 (3)请求地址是:http://fanyi.baidu.com/sug (4)打开network-XHR-sug from urllib import request,parse #负责处理json格式的模块 import json """ 大致流程: (1)利用data构造内容,然后urlopen打开 (2)返回一个json格式的结果 (3)结果就应该是girl的释义 """ baseurl = "https://fanyi.baidu.com/sug" #存放迎来模拟form的数据一定是dict格式 data = {

Scrapy

只愿长相守 提交于 2020-01-17 00:53:40
1. 什么是Scrapy   Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍。所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板。对于框架的学习,重点是要学习其框架的特性、各个功能的用法即可。 1.1 五大核心组件工作流程 2. 安装  Linux: ​ pip3 install scrapy ​ ​   Windows: ​ a. pip3 install wheel ​ b. 下载twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted ​ c. 进入下载目录,执行 pip3 install Twisted‑17.1.0‑cp35‑cp35m‑win_amd64.whl ​ d. pip3 install pywin32 ​ e. pip3 install scrapy . 基础使用  1.创建项目:scrapy startproject 项目名称 ​ #C:\Users\yangzaigang>scrapy startproject pachong #New Scrapy project 'pachong', using template directory 'c:\users\yangzaigang\appdata

爬虫基础

谁说我不能喝 提交于 2020-01-16 20:49:46
categories: 爬虫 爬虫前奏 爬虫的实际例子 搜索引擎(百度、谷歌、360搜索) 伯乐在线 惠惠助手 数据分析与研究(数据冰山知乎专栏) 抢票软件 什么是网络爬虫 通俗理解:爬虫是模拟人类请求网站行为的程序,可以自动请求网页、并将数据抓取下来,然后使用一定的规则提取有价值的数据 简单介绍: 百度百科 通用爬虫和聚集爬虫 通用爬虫:是搜索引擎抓取系统(百度、谷歌、搜狗等)的重要组成部分。主要是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份 聚集爬虫:是面向特定需求的一种网络爬虫程序,它与通用爬虫区别在于:聚集爬虫在实施网页抓取的时候会对内容进行筛选和处理,尽量保证只抓取与需求相关的网页信息 为什么使用Python写爬虫程序 PHP:PHP是世界上最好的语言,但他天生不适合做这个,而且对多线程、异步支持不是很好,并发处理能力弱。爬虫是工具性程序,对速度和效率要求比较高 Java:生态圈很完善,是Python爬虫最大的竞争对手。但是Java语言很笨重。代码量很大。重构成本比较高,任何修改会导致代码大量改动。爬虫经常要修改采集代码 C/C++:运行效率无敌。但是学习和开发成本高。写个小爬虫可能要大半天时间 Python:语法优美、代码简洁、开发效率高、支持的模块多。相关的HTTP请求模块和HTML解析模块非常丰富。还有Scrapy和Scrapy