scrapy抓取人人网上的“新鲜事”

Posted 温良Miner

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scrapy抓取人人网上的“新鲜事”相关的知识,希望对你有一定的参考价值。

利用scrapy模拟登陆人人网,笔者本打算抓取一下个人页面新鲜事,感觉这个网站越做越差,都懒得抓里面的东西了。这里仅仅模拟人人网登陆,说明一下scrapy的POST请求问题。

人人网改版之后,反爬措施是明显加强了呀,post请求发送的东西增加了很多东西;

不过,笔者小测试了一下,发现改版前的网站接口居然都在,而且都是可用的!!!

因此,直接给出post请求提交的url:http://www.renren.com/PLogin.do

提交参数为:mail(账号)和password(密码)! 

具体如何创建项目、创建爬虫文件、编写保存字段以及修改配置文件等,就不多写,参见之前的链接即可:

http://www.cnblogs.com/pythoner6833/p/9012695.html

这个链接以一个scrapy小项目为例,详细解释了scrapy创建项目到代码编辑过程的所有小细节。

这里仅仅贴出抓取人人网时,spider部分的代码:

# -*- coding: utf-8 -*-
import scrapy

class RenrenSpider(scrapy.Spider):
    name = \'renren\'
    # allowed_domains = [\'renren.com\']
    # start_urls = [\'http://renren.com/\']
    
    # 重写start_requests方法,提交post请求
    def start_requests(self):

        # post提交的url
        url = \'http://www.renren.com/PLogin.do\'
        yield scrapy.FormRequest(
            url=url,
            # 提交的数据
            formdata={
                "email": "xxx",  # 替换为自己的账号
                "password": "ddd",  # 替换为自己的密码
            },
            # 登录后回调的函数
            callback=self.parse
        )

    """
    人人网在登录之后会默认跳转到直播页面(什么鬼,感觉这个网站越做越垃圾,不过反爬都是加强了很多)
    """
    def parse(self, response):
        print(response.body.decode())

print的就是登陆成功后的页面源码,可以根据自己的需要,编写xpath来提取自己感兴趣的数据并保存。这里笔者是已经成功登录了。

运行结果:

 

以上是关于scrapy抓取人人网上的“新鲜事”的主要内容,如果未能解决你的问题,请参考以下文章

scrapy——scrapy介绍

scrapy学习Scrapy入门

动态IP代理软件有话说:天下爬虫框架皆出Scrapy

如何将抓取的数据从 Scrapy 以 csv 或 json 格式上传到 Amazon S3?

python爬虫框架scrapy初识

零基础写python爬虫之使用Scrapy框架编写爬虫