scrapy获取页面信息
本例子用命令行调试的方式,演示如何获取页面的特定信息:
0) 示例页面

1) 使用scrapy shell获取目标页面;
scrapy shell http://bj.lianjia.com/ershoufang/pg1tt2/
2)找到提取路径
在页面(本例中使用谷歌浏览器)用F12查看代码,找到要提取目标字段,如第一个房源的地址,在工具下栏有一个css的“路径”:
html body div div ul.sellListContent li.clear div.info.clear div.address div.houseInfo a
使用div后面的css路径,“ul.selListContent li.clear div.info.clear div.address div.houseInfo a”作为response.css函数的输入,如下图,此时已提取到了该页面使用该css的所有数据。
3) 从已选择的数据中进一步提取目标信息
上述得到的结果为一个selector的数组SelectorList,数组的每个元素则对应页面中一个选择到的结果。因此需单独处理每个信息;这里直接使用xpath提取文本信息。提取结果为unicode编码的字符串列表,选择对应的字符串(如本例子中只有一个字符串)。如下:

4) 打印列表信息
至此,目标信息就都找到了,可以使用循环将所有信息打印出来。如下:

scrapy获取页面信息的更多相关文章
- Python+Selenium自动化-获取页面信息
Python+Selenium自动化-获取页面信息 1.获取页面title title:获取当前页面的标题显示的字段 from selenium import webdriver import t ...
- 通过jquery获取页面信息
获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 :$(window).width(); 获取页面的文档高度 $(document ...
- java,利用Selenium调用浏览器,动态模拟浏览器事件,动态获取页面信息
1.环境搭建 jdk1.6版本:selenium 2.4版本. jdk1.8版本:selenium3.14版本. (1)selenium的jar包下载: 地址:http://selenium-rele ...
- PHP中通过preg_match_all函数获取页面信息并过滤变更为数组存储模式
// 1. 初始化 $ch = curl_init(); // 2. 设置选项 curl_setopt($ch, CURLOPT_URL, "http://test.com/index.js ...
- 通过js触发onPageView和event事件获取页面信息
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6814814715022148100/ 承接上一篇文档<js页面触发launch事件编写> pageVi ...
- 通过js触发launch事件获取页面信息
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6814776265602499080/ 承接上一篇文档<页面Cookie的JS文件编写> 思路 继续之前 ...
- python3.4 伪装成浏览器获取页面信息失败
最近学了下网络爬虫,打算从一个网站上提取点东西,自己练练手,刚开始还从这个网站上取了正确的html,后来百般尝试还是不能取正确的html,希望能得到大家的帮助~ 我刚开始的代码是: 1 url=&qu ...
- WordPress基础:wp_list_pages显示页面信息列表
函数:wp_list_pages($args) 作用:列出某个分类下的分类项目 常见参数说明: 参数 用途 值 sort_column 排序方式 post_title 按标题排序 [默认] m ...
- javascript 常用获取页面宽高信息 API
在页面的构建中 常常会需要获取页面的一些宽高信息,例如实现 惰性加载图片 需要获取页面的可见区域高度 和 已滚动区域的高度,以判断图片所在位置是否可见来决定加载图片的时间, 花点时间整理了一下,获取页 ...
随机推荐
- 设置position(absolute,fixed)导致flex布局不生效
个人解决办法:将要设置display:flex的dom外面在套一个div,并且设置宽度,就可以了.
- swarm 使用整理
swarm 是 docker 公司弄的 docker 集群管理工具. 整理使用实践如下. 1. 准备 3 台实例机 ip 地址分别是 192.168.0.131 ~ 1332. 在三台 ...
- MVC,MVP和MVVM三种开发模式
MVC: mvc模式:意思是软件可分为三部分: 视图(View):用户页面 控制器(Controller):控制器 模型(Model):模型 通讯方式: 1.View 传送指令到Controller ...
- java中的多线程入门
进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程.一个线程不能独立的存在,它必须是进程的一部分.一个进程一直运行,直到所有的非守护线程都结束运行后才能结束. 而多线程的好处就是效率高,充 ...
- bind与继承 待研究
class a { f() { console.log('a') } get f2() { console.log('f2') return (this['f'] = this.f.bind(this ...
- css控制滚动条的出现隐藏导致的页面闪动的问题
之前这些小细节都在实践的时候给忽视了,或者都动态加载,框架的使用等因素的隐藏,变得不那么容易出现. 今天看到张鑫旭大牛的微博,觉得记录一下这个小问题的解决方案 <div style=" ...
- 大量数据的excel导出
对于大型excel的创建且不会内存溢出的,就只有SXSSFWorkbook了.它的原理很简单,用硬盘空间换内存(就像hash map用空间换时间一样). private void writeToAla ...
- python之路-----前端之http协议
一.概述 HTTP(hypertext transport protocol),即超文本传输协议.这个协议详细规定了浏览器和万维网服务器之间互相通信的规则(B/S架构). HTTP就是一个基于TCP的 ...
- MySQL数据库--思维导图
MySQL数据库--思维导图
- __nw_connection_get_connected_socket_block_invoke Connection has no connected handle 解决办法
1. Xcode menu -> Product -> Edit Scheme... 2. Environment Variables -> Add -> Name: &quo ...
