自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 爬取豆瓣电影信息所使用的flask框架的知识。

app.pyfrom flask import Flask , render_template,requestimport datetimeapp = Flask(__name__)# 路由解析,通过用户访问的路径,匹配相应的函数。“/”# @app.route('/')# def hello_world():# return 'Hello world!'# debug模式的开启@app.route('/index')def hello(): return "he

2021-05-07 21:13:38 364

原创 linux——linux目录结构

基本介绍:linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/ ”,然后在此目录下再创建其他的目录。在linux中:一切皆为文件!具体的目录结构:/bin:是binary的缩写,这个目录存放着最经常使用的命令。/sbin:s——super user 这里存放的是系统管理员使用的系统管理程序。/home:存放普通用户的主目录,在linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名。/root:该目录为系统管理员的用户主目录。/lib:系..

2021-04-13 20:52:42 156

原创 vmware之——虚拟机网络选择 和 vmtools实现母机和虚拟机的文件共享

一 虚拟机网络连接的三种模式:桥接模式:虚拟系统可以和外部系统进行通讯,但是容易造成ip冲突。NAT模式:网络地址转换模式,虚拟系统可以和外部系统进行通讯,不造成IP冲突。(推荐)主机模式:独立的系统。二 vmtoolsvmtools安装后,我们可以在windows下更好的管理虚拟机,我们可以设置windows和centos的共享文件夹安装 vmtools的流程:进入centos点击虚拟机里面的“重新安装VMware vmtools”此时centos桌面上会出现一个vm的安装包,x

2021-04-13 20:15:57 471

原创 scrapy 深入之 pipeline使用

我们在读scrapy官方文档的时候,在关于pipeline的文档当中发现了这样两个方法:open_spider():This method is called when the spider is opened. 指的是这个方法在爬虫运行的时候会被调用,我们就想着能不能在这个方法中写一些数据库开启的操作,这样的话如果我们要往数据库里面写文件的话就不用重复的开启关闭数据库。close_spider():同理,在爬虫关闭的时候会被调用,可不可以应用到数据库的关闭上呢?举一个简单的例子:我们在pipel

2021-04-10 12:22:31 305

原创 scrapy 之 settings 的解读

# Scrapy settings for yangguang project## For simplicity, this file contains only settings considered important or# commonly used. You can find more settings consulting the documentation:## https://docs.scrapy.org/en/latest/topics/settings.html#

2021-04-10 11:27:57 102

原创 从0开始学习scrapy框架——(七)scrapy之scrapy shell的使用

可以在终端界面使用:scrapy shell http://www.baidu.com来实现交互性操作。(可以在未启动spider的情况下尝试及调试代码,也可以用来测试xpath表达式)比如我们可以使用以下命令:response.url : 当前响应的url地址response.request.url : 当前响应对应的请求的url地址response.headers : 响应头response.body : 响应体,也就是html代码,默认为byte类型response.request

2021-04-10 10:59:47 102

原创 从0开始学习scrapy框架——(六)item的实例——阳光政务平台爬虫

url = ‘http://wz.sun0769.com/political/index/politicsNewest’

2021-04-09 15:31:09 158

原创 scrapy——图片数据爬取之 ImagesPipeline

图片数据爬取之ImagesPipeline基于scrapy爬取字符串类型的数据和爬取图片类型的数据的区别?字符串:只需要基于xpath进行解析且提交管道进行持久化存储。图片:xpath解析出图片src的属性值。单独的对图片地址发起请求获取图片二进制类型的数据xpath 提供了 imagespipeline 帮助我们处理图片的src,只需要将img的src的属性值进行解析,提交到管道,管道就会对图片的src属性值进行请求发送获取图片的二进制类型的数据,且还会帮助我们进行持久化存储需求:爬取.

2021-04-09 10:21:19 500 2

原创 scrapy——请求传参(爬取boss直聘的岗位名称和描述)

请求传参:使用场景:如果爬取解析的数据不在同一张页面中。(深度爬取)需求: 爬取boss直聘的岗位名称,岗位描述。代码附上:settings.py:# Scrapy settings for bossPro project## For simplicity, this file contains only settings considered important or# commonly used. You can find more settings consulting th.

2021-04-08 21:28:50 916 4

原创 scrapy之——基于Spider的全站数据爬取(分页的应用)

基于Spider的全站数据爬取:就是将网站中某板块下的全部页码对应的页面数据进行爬取实现方式:将要爬取的所有页面的URL添加到start_urls列表(不推荐)自行手动进行请求发送yield scrapy.Request(url=new_url,callback=self.parse)需求:爬取校花网中明星写真板块下的所有得套图名称。url:http://www.521609.com/tuku/mxxz/代码如下:首先创建项目:scrapy startprojec.

2021-04-08 19:39:40 440

原创 从0开始学习scrapy框架——(五)item的介绍和使用

继续上面爬取腾讯招聘的例子我们再来说一下item的用法:在items.py中做以下修改:import scrapyclass TencentItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() title = scrapy.Field() postion = scrapy.Field() pubish_data = scrapy.Fiel

2021-04-08 10:58:01 238

原创 从0开始学习scrapy框架——(四)如何实现翻页请求

在scrapy如何实现翻页呢?回忆:requests模块是如何实现翻页的?1.找到下一页的地址2.调用request.get(url)通过爬取腾讯招聘的页面的招聘信息来学习如何实现翻页请求:url = http://hr.tencent.com/position.phpimport scrapyclass HrSpider(scrapy.Spider): name = 'hr' # allowed_domains = ['tencent.com'] start_u

2021-04-08 10:30:11 733

原创 从0开始学习scrapy框架——(三)logging模块的使用

学习过scrapy的人都知道,我们一般会在settings中加上一行代码:LOG_LEVEL = 'WARNING'# 或者是:LOG_LEVEL = 'ERROR'用来表示我们当前爬虫只会输出大于或等于我们当前这个等级的日志。logging模块的使用:(可以通过日志来判断warning或error来自哪个py文件)同样,我们在pipeline中也可以使用logging模块:我们还可以在settings中指定日志保存的位置,通过代码:LOG_FILE = './LOG.log'最

2021-04-08 09:21:46 150

原创 从0开始学习scrapy框架——(二)pipeline的理解和介绍

pipeline的使用:完成pipeline的代码以后,我们需要在settings中手动开启pipeline:引出问题,为什么需要多个pipeline?可能我们会有多个spider,不同的pipeline处理不同的spider送来的item的内容一个spider的内容,可能要做不同的操作,比如既要把它存入数据库当中,又要把它持久化自在本地中。要注意的是:pipeline的权重越小优先级越高pipeline中process_item方法名不能修改为其他名称如何区分当前的item到底是

2021-04-08 08:54:33 266

原创 从0开始学习scrapy框架——(一)基本的概念和流程

基本的概念:scrapy是一个爬取网站数据,提取结构性数据而编写的应用框架,它是基于Twisted的框架,而Twisted框架我们可以理解为异步爬取的高效率的一个框架,可以加快我们的爬取速度。所谓的同步异步,我是这样理解的:假如说我们要爬取3个URL的内容,同步我们就是要依次去爬取这三个网站的内容, 即一个网站爬取成功以后才能开始爬取第二个网站,在爬取某一个网站时,我们不能进行其他操作,此时我们称这种状态为阻塞状态。而异步,我们在爬取第一个网站时,不等第一个网站数据下载完毕,就可以开启第二个网站的请求

2021-04-08 08:33:59 189

原创 scrapy框架初识和scrapy的安装

什么是框架?- 就是一个集成了很多功能并且具有很强通用性的一个项目模板。(可以理解为项目的半成品)如何学习框架?- 专门学习框架封装的各种功能的详细用法。什么是scrapy?- 爬虫中封装好的一个明星框架。功能:高性能的持久化的操作,异步的数据下载,高性能的数据解析,分布式scrapy框架的基本使用:环境的安装:...

2021-04-07 16:48:55 103 1

原创 selenium的应用之——12306模拟登陆

在使用selenium进行12306的模拟登陆时,遇到了很多让人头疼的问题,最终在借鉴其他博主的方案之下,终于实现了12306的模拟登陆。思路:从网站首页开始,通过调用两次click()跳转到包含有验证码的登录页面。然后将验证码图片下载下来,通过超级鹰进行识别并返回验证码所在的坐标。对这些坐标进行处理,通过selenium自动化点击验证码所要求的坐标。输入用户名和密码点击登录按钮超级鹰是一个自助帮你识别验证码并返回给你相关内容的一个平台。我的源代码如下:import requests

2021-04-06 20:46:52 152

原创 无可视化界面(无头浏览器)+反检测

使用selenium时进行网页自动化时,如果我们不想看到弹出网页,想要在背地里偷偷地执行,这就叫做无可视化界面,即无头浏览器。所谓的反检测是为了让网站服务器检测不出我们使用了selenium,否则某些门户网站通过使用反爬手段导致我们无法爬取成功。这些代码不用去死记硬背,只需要在需要使用的时候拿过来用就可以了。from selenium import webdriverfrom time import sleep# 实现无可视化界面from selenium.webdriver.chrome.op

2021-04-06 17:27:43 676 1

原创 selenium实战之——selenium的模拟登陆qq空间

使用该程序之前一定要提前安装好selenium以及谷歌浏览器对应版本的驱动程序或者其他浏览器以及对应的驱动程序也是可以的from selenium import webdriverfrom time import sleepbro = webdriver.Chrome(executable_path='./chromedriver.exe')bro.get('https://qzone.qq.com/')bro.switch_to.frame('login_frame')# 注意 一定要是

2021-04-06 16:35:53 135

原创 selenium处理iframe

如果定位的标签存在于 iframe 之中的,则必须通过如下操作再进行标签定位:如果定位的标签存在于iframe标签之中,则必须使用switch_to.frame('frameID')动作链(拖动):from selenium.webdriver import ActionChains实例化一个动作链对象:action = ActionChains(bro)click_and_hold(div) :长安且点击操作move_by_offset(17,0)perform() : 让动作链执行

2021-04-06 16:20:06 386

原创 selenium模块的初步了解

问题:selenium模块和爬虫之间又怎样的关联?便捷的获取网站中动态加载的数据(ajax)便捷的实现模拟登录Selenium测试直接运行在浏览器中,就像真正的用户在操作一样什么是selenium?基于浏览器自动化的一个模块。selenium的使用流程:环境的安装: pip install selenium下载一个浏览器的驱动程序- 下载路径http://chromedriver.storage.googleapis.com/index.html- 驱动程序和浏览器的映

2021-04-06 13:48:15 94

转载 git使用教程

git 是分布式版本控制系统:workspace:工作区index:暂存区repository:仓库区(或本地仓库)remote:远程仓库git常用的命令:安装完git后需要配置用户名和邮箱:git config --global user.name "xxxx"git config --global user.email "xxxx.comcd: D : 表示进入D盘mkdir testgit : 表示建立一个testgit的目录(文件夹)cd testgit : 表示进入t

2021-04-06 10:20:55 884

原创 高性能异步爬虫

目的: 在爬虫中使用异步实现高性能的数据爬去操作。同步爬取(效率低下):import requestsheaders = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.63 '}urls = [

2021-04-05 11:27:41 131

原创 模拟登陆cookie操作

模拟登陆是为了爬取基于某些用户的用户信息;比如个人主页中显示的用户信息。通过对模拟登陆之后网页进行解析并请求:import requestsfrom lxml import etree# 1.对验证码图片进行捕获和识别。url = 'http://www.renren.com/SysHome.do'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, li

2021-04-04 20:36:19 701 5

原创 通过云打码实现人人网模拟登陆(现在已经无法使用)

模拟登陆:爬取基于某些用户的用户信息。需求:对人人网进行模拟登陆。点击登陆按钮之后会发起一个post请求post请求会携带登录之前录入的相关的登录信息(用户名,密码,验证码…)验证码:每次请求都会变化import requestsfrom lxml import etree# 1.对验证码图片进行捕获和识别。url = 'http://www.renren.com/SysHome.do'headers = {'User-Agent': 'Mozilla/5.0 (Window

2021-04-04 19:54:48 1055 1

原创 python爬虫之——验证码识别(介绍的平台已失效)

验证码和爬虫之间的爱恨情仇?反爬机制:验证码。识别验证码图片中的数据,用于模拟登陆操作。识别验证码的操作:- 人工肉眼识别;(效率低,不推荐)- 第三方自动识别:云打码(推荐)url:https://www.yundama.com/demo.html(已经挂了)云打码的使用教程:- 注册:普通用户和开发者用户- 登录:普通用户登录:查看是否还有剩余的提分开发者用户登录:1.创建一个软件:我的软件->添加新的软件->录入软件名称->提交(软件id和密钥)2.下载示例代

2021-04-03 21:59:02 185

原创 python爬虫之xpath案例——爬取某网站上所有的免费ppt模板

需求:爬取站长网站上某一页的所有的ppt的压缩包url :https://sc.chinaz.com/ppt/free.html代码奉上!!! 希望可以有用!# 需求:爬取站长素材中的免费ppt模板# url = 'https://sc.chinaz.com/ppt/free.html'import requestsfrom lxml import etreeimport os#用来创建一个文件夹if not os.path.exists('./rarlibs'): os.mkdi

2021-04-03 21:17:47 644

原创 python爬虫之xpath案例——全国城市名称爬取

# 需求:解析出所有城市名称# url : https://www.aqistudy.cn/historydata/import requestsfrom lxml import etree# # 分别爬取热门城市和全部城市的信息: 即需要两个循环# headers = {# 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.

2021-04-03 20:11:00 1112 1

原创 python爬虫之xpath案例——爬取58同城二手房数据

#需求:爬取58二手房中的房源信息import requestsfrom lxml import etree# 爬取到页面源码数据headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.63'}url = 'https://cn.58.

2021-04-03 19:44:08 3288 4

原创 python数据解析之xpath

xpath解析:最常用且最便捷高效的一种解析方式,通用性强。xpath解析原理:1.实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中2.调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的提取。xpath的安装:pip install lxmllxml是一种解析器。如何实例化一个etree对象:from lxml import etree1.将本地的html文档中的源码数据加载到etree对象中: etree.parse(fi

2021-04-02 21:02:20 233 1

原创 python数据解析之bs4实战演练

需求:爬取三国演义小说所有的章节标题和章节内容;url = 'https://www.shicimingju.com/book/sanguoyanyi.html'思路:- 使用通用爬虫爬取将该页面的源文件- 解析该源文件,得到章节标题和每个章节对应的详情url地址- 对该详情url地址进行访问得到章节的内容...

2021-04-02 20:17:28 127

原创 python数据解析之bs4

bs4 : python中独特的解析方式,只能应用在python中。数据解析的原理:1.标签定位2.提取标签、标签属性中存储的数据值bs4数据解析原理:1.实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中。2.通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取。环境安装:pip install bs4pip install lxml如何实例化BeautifulSoup对象:from bs4 import Beautif

2021-04-02 19:55:38 188

原创 python 数据解析

聚焦爬虫:爬取页面中指定的页面内容。数据解析的分类:正则bs4xpath(*)数据解析原理概述:解析的局部的文本内容都会在标签之间或者标签对应的属性中进行存储。1.进行指定标签的定位2.标签或者标签对应的属性中存储的数据值进行提取(解析)正则解析:1.如何爬取图片?import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KH

2021-04-02 19:17:28 140

原创 requests应用之国家药监局

需求:爬取国家药品监督总局中基于中华人民共和国化妆品生产许可证相关数据url:http://scxk.nmpa.gov.cn:81/xk首页中对应的企业数据是通过ajax请求得到的。任取一个企业点开它的超链接: http://scxk.nmpa.gov.cn:81/xk/itownet/portal/dzpz.jsp?id=ed59438f34ae47e794f4c7ee5137c1f7再任取一个企业:http://scxk.nmpa.gov.cn:81/xk/itownet/portal/dzp

2021-04-02 19:16:28 208

原创 requests应用之肯德基!

import requestsurl = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'data = {'cname':'','pid':'','keyword': '北京','pageIndex': '1','pageSize': '10'}headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/5

2021-04-02 19:15:58 49

原创 requests案例三:爬取豆瓣电影

import requestsimport jsonheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.63'}url = 'https://movie.douban.com/j/chart/top_list'param = {'ty

2021-04-02 19:15:28 204

原创 requests模块实例二:破解百度翻译

效果:输入一个单词之后,可以保存关于这个单词的json文件。源代码:import requestsimport json# 指定urlpost_url = 'https://fanyi.baidu.com/sug'# 进行UA伪装headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safar

2021-04-02 19:14:49 136

原创 用四个案例来学会requests模块!User-Agent 的使用

requests模块的巩固实战巩固:(四个案例)需求1:爬取搜狗指定词条对应的搜索结果页面(简易网页采集器)需求2:破解百度翻译需求3:爬取豆瓣电影分类排行榜需求4:爬取国家药品监督总局中基于中华人民共和国化妆品生产许可证相关数据需求1: 实现简易的网页采集器。代码:import requests# UA伪装:# UA:User-Agent(请求载体的身份标识)headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;

2021-04-02 14:44:44 461

原创 爬虫第一血! requests模块的简单使用!

爬虫第一血!爬虫在使用场景中的分类:通用爬虫:抓取系统重要组成部分,抓取的是一整张页面的数据。聚焦爬虫:是建立在通用爬虫之上,抓取的是页面中特定的局部内容。增量式爬虫:检测网站中数据更新的情况,只会抓取网站中最新更新出来的数据。requests模块:python中功能特别强大的网络请求的模块,简单便捷,效率极高,即模拟浏览器发送请求。如何使用:- 指定URL- 发起请求- 获取响应数据- 持久化处理(存储)环境安装:pip install requests实战编码:需求:爬

2021-04-02 14:21:47 127 1

原创 单链表中 Linklist L 和 Linklist *L 的区别

考研复习到单链表的时候,发现书中对于初始化单链表的代码些许不懂,查阅资料后想保存下来,因为写一篇以后不懂得时候可以看:首先给出单链表存储结构的代码:typedef struct Node{ ElemType data; struct Node * next;}Node,*Linklist; //Linklist为结构指针类型在这里说明一下:Linklist 和Node * 同为结构指针类型,两者是等价的。习惯上Linklist强调是一个单链表,而Node * 强调这是一个节点。继续说L

2020-06-20 19:47:23 3837 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除