Python3[爬虫实战] scrapy爬取汽车之家全站链接存json文件

昨晚晚上一不小心学习了崔庆才,崔大神的博客,试着尝试一下爬取一个网站的全部内容,福利吧网站现在已经找不到了,然后一不小心逛到了汽车之家 (http://www.autohome.com.cn/beijing/)

很喜欢这个网站,女人都喜欢车,更何况男人呢。(捂脸)


说一下思路:
1 . 使用CrawlSpider 这个spider,
2. 使用Rule
上面这两个配合使用可以起到爬取全站的作用

3. 使用LinkExtractor  配合Rule可以进行url规则的匹配
4. FormRequest  这是scrapy 登陆使用的一个包

注意:这里进行全站的爬取只是单纯的把以 .html 的url进行打印,保存到json文件,

这里我们还可以继续往下深入的,进行url下的内容提取。

说一下提取的思路:这里我们可以随便找一个url下的内容,然后找到想要提取到的内容,进行xpath提取,

xpath 的一般提取规则:选中想要提取内容的那一行,然后右键copy --> copy xpath  就可以啦,这里老司机说是最好用chrom浏览器的xpath,火狐可能有时候提取不到想要的元素,

xpath提取的简单并且常用的规则:

//*[@id=”post_content”]/p[1]

意思是:在根节点下面的有一个id为post_content的标签里面的第一个p标签(p[1])

如果你需要提取的是这个标签的文本你需要在后面加点东西变成下面这样:

//*[@id=”post_content”]/p[1]/text()

后面加上text()标签就是提取文本

如果要提取标签里面的属性就把text()换成@属性比如:

//*[@id=”post_content”]/p[1]/@src

So Easy!XPath提取完毕!来看看怎么用的!那就更简单了!!!!

response.xpath(‘你Copy的XPath’).extract()[‘要取第几个值’]

注意XPath提取出来的默认是List。

上面就是简单的提取规则,是不是很容易懂,我觉着也是,比之前学的容易懂多了,可能我现在还是个小白吧。哈哈哈。

附录一下:

关于imgurl那个XPath:

你先随便找一找图片的地址Copy XPath类似得到这样的:

//*[@id=”post_content”]/p[2]/img

你瞅瞅网页会发现每一个有几张图片 每张地址都在一个p标签下的img标签的src属性中

把这个2去掉变成:

//*[@id=”post_content”]/p/img

就变成了所有p标签下的img标签了!加上 /@src 后所有图片就获取到啦!(不加[0]是因为我们要所有的地址、加了 就只能获取一个了!)

关于XPath更多的用法与功能详解,建议大家去看看w3cschool

看来我确实没有怎么看w3c

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值