scrapy爬个小网站

本文使用scrapy对某一个网站静态数据进行了抓取

# -*- coding: utf-8 -*- import scrapy from scrapy.http import request import requests import os import sys reload(sys) sys.setdefaultencoding('utf-8')#中文字符不能被识别报错 class spider(scrapy.Spider):name='picSpider'allowed_domains=[]urls=[]for i in range(1,400):if i==1:urls.append('http://www.***.com/pic/12/')else:urls.append('http://www.***.com/pic/12/p_'+str(i)+'.html')start_urls=urlsdef parse(self, response):#title=response.xpath("//div[@class='box list channel']/ul/li/a/text()").extract()link=response.xpath("//div[@class='box list channel']/ul/li/a/@href").extract()for l in link:url='http://www.***.com'+lre=scrapy.Request(url,callback=self.parse_page)#子页面2层爬yield redef parse_page(self, response):title=response.xpath("//h1/text()").extract()#名字path=os.path.join('d:/dd',title[0])if os.path.exists(path) is False:os.mkdir(path)for i in response.xpath("//div[@class='post']/img/@src").extract():name=os.path.join(path,i.split('/')[-1])pic=requests.get(i,timeout=10)f=open(name,'wb')f.write(pic.content)f.close()

  

转载于:https://www.cnblogs.com/giserpan/p/6916093.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux如何标识用户账号和组账号,linux管理用户和组

唯一标识: UID GID (管理员root的UID为0)组的分类: 基本组 附加组(从属组)基本组:Linux自己创建的组,与用户同名,系统自动将用户加入附加组(从属组):管理员自建创建,管理员将用户加入Linux一个…

Windows 相关链接

c运行库、c标准库、windows API的区别和联系 http://www.cnblogs.com/renyuan/p/5031100.html 转载于:https://www.cnblogs.com/jidongdeatao/p/6916260.html

vs远程编译linux程序,使用Visual Studio 2015远程调试Linux程序

##安装 Visual Studio 2015安装时注意将跨平台移动开发->Visual C移动开发->Viaual C Android 开发的选项勾上##安装PUTTYVisual Studio依赖putty中的plink来连接Linux机器并发送命令##使用首先在Visual Studio中新建一个空项目这里是列表文本接下来将代码导入到这个空项…

都在说反射,反射到底是什么

概念: 什么是反射? 利用反射可以无视修饰符获取类里面所有的属性和方法对于任何对象,都能够调用它的方法和属性,这种动态获取信息以及动态调用对象方法的功能称为Java的反射 反射的应用场景? 常见的有: idea的智能提示、框架等…

jade linux 安装教程,ROS-Jade版在UbuntuKylin15.04上的安装

ROS已经升级到Jade版了,而且貌似可以支持Ubuntu15.04。这里做一个测试,安装是成功的,运行有没有问题,慢慢用了再说。Ubuntu install of ROS JadeWe are building Debian packages for several Ubuntu platforms, listed below. …

LaunchScreen原理

会自动加载LaunchScreen是因为在Target当中,指定了Launch Screen file 它的底层实现其实把LaunchScreen上的东西,生成了一张图片,然后把这张图片设为程序的启动图片.可以进入沙盒当中查看,查看方法,找到应用程序根目录.获取方法: NSLog("%",NSHomeDirectory());打印出…

什么是注解,注解怎么用

概念: 什么是注解? 是JDK1.5推出的新特性 对程序进行标注和解释给类增加额外的信息注解可以保存一些简单的数据 注解和注释的区别 注释: 给程序员看的 注解: 给编译器看的 使用注解进行配置配置的优势 代码更加简洁,方便 注解也可以代替xml 注解的作用: 编写文档&…

QTimer在linux设置实时线程,为什么我的QTimer只能用于以QThread开头的线程消息,如果我的代码中没有QTimer?...

当(并且仅当)退出我的应用程序时,这些(并且仅这些)重复的消息出现在命令提示符上:QObject::startTimer: QTimer can only be used with threads started with QThreadQObject::startTimer: QTimer can only be used with threads started with QThreadQObject::startTimer: QTi…

一分钟看懂动态代理

动态代理: 在不改变目标对象方法的情况下对方法进行增强 组成部分: 被代理对象:真实的对象代理对象:内存中的一个对象 要求: 代理对象必须和被代理对象实现相同的接口 实现 使用Proxy.newProxyInstance() 举栗子&#…

linux 检查mps版本,linux_mps启动流程_存储相关.doc

linux_mps启动流程_存储相关Linux-mips启动流程-存储相关linux内核启动的第一个阶段是从 /arch/mips/kernel/head.s文件开始的。而此处正是内核入口函数kernel_entry(),该函数定义在 /arch/mips/kernel/head.s文件里。kernel_entry()函数是体系结构相关的汇编语言,它…

Mac - 苹果电脑mac系统释放硬盘空间方法汇总

硬盘空间是大家最头痛的一个问题,大家在硬盘空间变小的时候怎么腾空间的呢?下面为大家分享7个mac系统释放空间的高级方法,大家赶紧来收了! mac系统释放硬盘空间方法: 方法一:删除Emacs——可以节省出60MB的…

XML语言

XML: XML是可扩展的标记语言 标记语言: 通过标签来描述数据的一门语言(标签有时我们也将其称之为元素) 可扩展:标签的名字是可以自定义的,XML文件是由很多标签组成的,而标签名是可以自定义的 xml学习网站https://www.w3school.com.cn/x.asp 作用&#xf…

linux arm current_thread_info定义,linux 内核 current全局变量

在内核的API里经常能够见到一个指针current,它表示的是当前的进程(如果说是一个全局变量虽然不合理,但更容易理解),current内核路径为:include\asm-generic\current.hcurrent当前进程具体定义:#ifndef __ASM_GENERIC_C…

xml中的Document和Attribute

1.Document 导入dom4j的步骤 去官网下载 zip 包。http://www.dom4j.org/ 在项目中创建一个文件夹:lib将dom4j-2.1.1.jar文件复制到 lib 文件夹在jar文件上点右键,选择 Add as Library -> 点击OK在类中导包使用 得到Document对象 步骤:…

linux here用法,linux shell的here document用法(cat EOF)

什么是Here Document?Here Document 是在Linux Shell 中的一种特殊的重定向方式&#xff0c;它的基本的形式如下cmd << delimiterHere Document Contentdelimiter其作用是将两个 delimiter 之间的内容(Here Document Content 部分) 传递给cmd 作为输入参数;比如在终端中…

shell脚本中的条件测试if中的-z到-d的意思

文件表达式if [ -f file ] 如果文件存在if [ -d ... ] 如果目录存在if [ -s file ] 如果文件存在且非空 if [ -r file ] 如果文件存在且可读if [ -w file ] 如果文件存在且可写if [ -x file ] 如果文件存在且可执行 整数变量表达式if [ int1 -eq i…

XPath表达式

什么是XPath XPath&#xff1a;路径表达式 作用&#xff1a;在DOM解析XML时&#xff0c;通过XPath表达让解析更加简单 XPath表达式分类 绝对路径相对路径全文搜索属性查找 什么是Node对象 DOM树中的每个节点就是Node dom4j中与XPath相关的方法 注&#xff1a;使用XPat…

最详细MySQL的安装与介绍Windows

数据库的安装&#xff1a; 打开下载的mysql安装⽂件双击解压缩&#xff0c;运⾏“mysql-5.5.40-win32.msi”。 选择安装类型&#xff0c;有“Typical&#xff08;默认&#xff09;”、“Complete&#xff08;完全&#xff09;”、“Custom&#xff08;⽤户⾃定义&#xff09;”…

linux怎么修改bash,Linux操作系统中如何对Bash变量内容修改?

我们知道两种对变量取胜的方法&#xff1a;echo $HOME echo ${HOME}在echo ${variable}的方法中&#xff0c;还可以对变量的内容进行修改&#xff0c;只要加上一些字符标志&#xff0c;后面再接着使用比对字符串&#xff0c;就可以修改变量的内容了。假设变量名为&#xff1a;v…

读懂基础机器学习算法

本篇内容主要是面向机器学习初学者&#xff0c;介绍常见的机器学习算法&#xff0c;当然&#xff0c;欢迎同行交流。 哲学要回答的基本问题是从哪里来、我是谁、到哪里去&#xff0c;寻找答案的过程或许可以借鉴机器学习的套路&#xff1a;组织数据->挖掘知识->预测未来。…