【爬虫】Scrapy笔记

1.工程的创建 

scrapy startproject hello

创建文件

scrapy genspider example example.com

 

===

修改工程中 items的定义

items的作用是定义网上爬取的数据,结构体类似于字典来保存数据

例如

class DoubanMovieItem(scrapy.Item):
#申明自己要爬去的东西,创建了这样一个类
# 排名
ranking = scrapy.Field()
# 电影名称
movie_name = scrapy.Field()
# 评分

 修改新创建的example.py文件
1.要爬取的url
2.调用 Request方法
3.parse解析
  1.调用 response.xpath   #解析大模块
  2.for循环吧解析到的数组进行逐个重新解析,并把数据保存到item字节里
xpath解析()
如下链接
这个写的的确好,保存成笔记了~
https://blog.csdn.net/PbGc396Dwxjb77F2je/article/details/80154967
 
还有一个网站,这个写的也行,可是就是感觉说的不是同一回事
http://www.w3school.com.cn/xpath/xpath_functions.asp
 
======总之爬虫要写好,这个解析语法 F12要多运用运用=======
 写完之后运行就可以了
 
 其实还是抄别人的,有的时候会感叹,别人已经走那么远了,我们还追有用吗?
其实不追,那才是放弃才是失败呀。要知道自己喜欢什么和擅长什么,互联网如此,技术如此,生活竞争就是如此。没有门槛那就不会有这么多的贫富差距了
加油,你可以的~
今天,爬虫可以自己跑了,而且还有了这么抓取元素,来爬虫,大概这个已经回50%了,剩下的
1.各种反爬虫机制
2.多实践,以及其他界面的爬虫操作技巧,界面跳转等
3.数据分析,这么呈现好的数据报表
 
代码放到。。。
https://github.com/callmexuelin/DoubanScrapy
 
 

ctrl+alt+t:添加try/catch   Pycharm添加异常处理机制的快捷键

 

 

1.在所要爬取的网页后添加/robots.txt  

e.g http://huaban.com/robots.txt   就可以查看该网站的 爬取信息 

2.获取网站所有技术

import  builtwith    

builtwith.parse('http://huaban.com')   

3.获取网站所有者信息

import whois

whois.whois(''http://huaban.com')

 

xpath解析 我的错误编辑写法:

//*[@id="content"]/div/div[1]/div[2]/span[3]/a

'.//div[@class="star"]/span/text()'

.//div[@class="item"/pic]

'.//div[@class="pic"]/em/text()'

.//div[@class="hd"]/a/span[class="title"]/test()
.//div[@class="hd"]/a/span[1]/text()

.//div[@class="star"]/span[3]/text()

 

Scrapy 命令

scrapy startproject myproject //创建Scrapy项目

scrapy genspider douban_movie_top250 https://movie.douban.com/top250 //创建一个Scrapy python文件

全局命令:
startproject
settings
runspider
shell
fetch
view
version

项目(Project-only)命令:
crawl
check
list
edit
parse
genspider
deploy
bench

Spiders
Spider类定义了如何爬取某个(或某些)网站。包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item)。 换句话说,Spider就是您定义爬取的动作及分析某个网页(或者是有些网页)的地方。

spider中初始的request是通过调用 start_requests() 来获取的。 start_requests() 读取 start_urls 中的URL, 并以 parse 为回调函数生成 Request

在运行 crawl 时添加 -a 可以传递Spider参数:
scrapy crawl myspider -a category=electronics

Scrapy提取数据有自己的一套机制。它们被称作选择器(seletors),因为他们通过特定的 XPath 或者 CSS 表达式来“选择” HTML文件中的某个部分。选择器

//*[@id="content"]/div/div[1]/ol/li[1]/div/div[1]/em

 

posted @ 2018-08-23 00:12  asges林  阅读(168)  评论(0)    收藏  举报