zoukankan      html  css  js  c++  java
  • 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来提取自己感兴趣的数据并保存。这里笔者是已经成功登录了。

    运行结果:

  • 相关阅读:
    支持国产共享软件
    Win CE 5.0 增加电池电量显示
    [转]C# 系统应用之鼠标模拟技术及自动操作鼠标
    自己写的 读写 ini 配置文件类
    自己写的 Readini 类
    sizeof与strlen()、递归优化题解
    Git学习资源收集汇总
    好用的Google Chrome插件
    【转】C# Socket编程(5)使用TCP Socket
    【转】C# Socket编程(4)初识Socket和数据流
  • 原文地址:https://www.cnblogs.com/pythoner6833/p/9046971.html
Copyright © 2011-2022 走看看