scrapy 下selector的使用


selector会创建对象之后就很容易上手了,而对象的一般格式都是: selector = Selector(text=text)

这是最基本的,还有复杂一点的对象,如response = HtmlResponse(url='http://x.0830114.net/',encoding='utf-8')

不过再复杂的对象用法都是一样的,如下面这个例子:(运用之前记得导入from scrapy.selector import Selector)

text = '''
<html>
<body>
<h1>Hello World</h1>
<h1>Hello Scrapy</h1>
<b>Heallo python</b>
<ul>
<li>C++</li>
<li>Java</li>
<li>Python</li>
</ul>
<body>
</html>
'''

只需要一句话,selector = Selector(text=text),就完成创建了。

 

这种用法对于熟悉xpath和css的我来说简直不要太简单。对我来说难点还是在创建对象,我不会创建复杂的对象。

这里说一些xpath的用法,xpath其实就是按简单的目录结构来爬取,比如xpath('div/p/a/text()')

基本上都是这么来操作,text意思是取出文本的信息。xpath中/表示从这个路径开始选取,//表示选取所有的路径

因为text会取出带有标签的文本,所有还需要用extract来进行二次提取,以便把复杂的文本变成简单易懂的文本。

xpath主要就是按照文本的结构来爬取信息,这些没什么难的,随便看下你电脑中硬盘的目录排序,你就能模仿出来了。

还有正则表达式这个我不会啊,确切的说我就会点皮毛,我只知道要使用正则表达式可以在后面加上.re_first('')就能使用了,

data = selector.xpath('.//ul/li/text()').re_first('H(.*?)d').re_first('\d+\.d+')  

除了能用正则表达式筛选数字,我无话可说了。对了这个创建对象的方法在scrapy中基本上是没什么用的,因为scrapy会自动帮我们创建这个对象。

对,就在你不经意间它就通过类和函数在内部创建了这个对象。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM