美文网首页
scrapy爬取登录——人人网

scrapy爬取登录——人人网

作者: 楚糖的糖 | 来源:发表于2018-11-09 16:46 被阅读0次

    1.创建项目

    D:\scrapy_1>scrapy startproject login1
    D:\scrapy_1>cd login1
    D:\scrapy_1\login1>scrapy genspider renren renren.com

    2.输入https://www.baidu.com/打开人人网

    2.png

    输入用户名和密码,在新打开的页面中点击检查,查看header里面的东西,

    3.如下图所示,寻找cookies,并复制粘贴到下面代码中的cookies="xxx;xxx; xxx; xxx"的xxx;xxx; xxx; xxx里面

    3.png

    找到登录需要携带的cookies,使用字典推导式和split来进行cookies的切割的写法

    def start_requests(self):
        cookies="xxx;xxx; xxx; xxx"
        cookies={i.split("=")[0]:i.split("=")[1] for i in cookies.split("; ")}
    
    

    4.打开人人网的个人资料页面,喜欢里面有个人爱好,音乐等,我想要获取这些东西

    4.png

    下面附上scrapy中的spider里面的人人网里面要输入的代码

    
    # -*- coding: utf-8 -*-
    import re
    
    import scrapy
    
    
    class RenrenSpider(scrapy.Spider):
        name = 'rr'
        allowed_domains = ['renren.com']
        start_urls = ['http://www.renren.com/']
        def start_requests(self):
            cookies="xxx;xxx; xxx; xxx"
            cookies={i.split("=")[0]:i.split("=")[1] for i in cookies.split("; ")}
            yield scrapy.Request(
                self.start_urls[0],
                callback=self.parse,
                cookies=cookies
            )
    
        def parse(self, response):
            yield scrapy.Request("http://www.renren.com/968627064/profile?v=info_timeline",callback=self.parse_detail)
    
        def parse_detail(self,response):
            print(response.body.decode())
           
    

    爬取情况如下


    1.png

    如果想将音乐的如果有来生,爱好之类的东西进行提取保存,可以使用xpath,正则,bs4等来进行解析。

    正则

    #正则
    import re
    hobbies = re.findall("xx(.*?)x",response.body.decode())
    print(bobbies)
    

    xpath

    #xpath
    hobbies=response.xpath("XX").extract_first()
    

    相关文章

      网友评论

          本文标题:scrapy爬取登录——人人网

          本文链接:https://www.haomeiwen.com/subject/gjyoxqtx.html