创建scrapy工程

1
2
cd C:\Spider_dev\app\scrapyprojects
scrapy startproject renren

创建定向爬虫

1
2
cd renren
scrapy genspider Person renren.com

查看目录结构

定义items

1
2
3
4
5
6
class  RenrenItem(scrapy.Item):
     # define the fields for your item here like:
     # name = scrapy.Field()
     sex = scrapy.Field()  # 性别
     birthday = scrapy.Field()  # 生日
     addr = scrapy.Field()  # 家乡

 编写爬虫

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# -*- coding: gbk -*-
import scrapy
# 导入items中的数据项定义模块
from  renren.items import RenrenItem
class  PersonSpider(scrapy.Spider):
     name =  "Person"
     allowed_domains = [ 'renren.com' ]
     start_urls = [ 'http://www.renren.com/913043576/profile?v=info_timeline' ]
     def start_requests(self):
         return  [scrapy.FormRequest( 'http://www.renren.com/PLogin.do' ,
                                    formdata={ 'email' : '15201417639' , 'password' : 'kongzhagen.com' },
                                    callback=self.login)]
     def login(self,response):
         for  url  in  self.start_urls:
             yield self.make_requests_from_url(url)
     def parse(self, response):
         item = RenrenItem()
         basicInfo = response.xpath( '//div[@id="basicInfo"]' )
         sex = basicInfo.xpath( 'div[2]/dl[1]/dd/text()' ).extract()[0]
         birthday = basicInfo.xpath( 'div[2]/dl[2]/dd/a/text()' ).extract()
         birthday =  '' . join (birthday)
         addr = basicInfo.xpath( 'div[2]/dl[3]/dd/text()' ).extract()[0]
         item[ 'sex' ] = sex
         item[ 'addr' ] = addr
         item[ 'birthday' ] =birthday
         return   item

 解释:

  allowed_domains:定义允许访问的域名

  start_urls:登陆人人网后访问的URL

  start_requests:程序的开始函数,FormRequest定义了scrapy如何post提交数据,返回函数或迭代器,回调函数login。

  login:登陆人人网之后的爬虫处理函数,make_requests_from_url处理start_urls中的url,其默认的回调函数为parse

  parse:处理make_requests_from_url函数返回的结果

执行爬虫

1
scrapy crawl Person -o person.csv

转载于:https://www.cnblogs.com/HomeG/p/10527107.html

登陆人人网爬取个人信息相关推荐

  1. 使用Python和selenium的Chromedriver模拟登陆爬取网站信息(beautifulsoup)

    爬取的信息很多,所以需要设置断点,在程序重启时能继续爬取.并且能在断掉之后自动重启. 1.setting.py 对爬取的常量进行设置 """ 基本信息设置 "& ...

  2. [python应用案例] 一.BeautifulSoup爬取天气信息并发送至QQ邮箱

    前面作者写了很多Python系列文章,包括: Python基础知识系列:Python基础知识学习与提升 Python网络爬虫系列:Python爬虫之Selenium+Phantomjs+CasperJ ...

  3. 爬虫项目三:爬取选课信息

    爬虫项目三:爬取whut-jwc选课信息 项目实现:主要获得通识选修.个性选课.英语体育选课的课程信息 核心: 1.实现网页登陆 2.爬取课程信息 一.网页信息登陆 from selenium imp ...

  4. JAVA使用HttpClient模拟登录正方教务系统,爬取学籍信息和课程表成绩等,超详细登录分析和代码注解

    目录 前言 分析 代码实现 第一次GET POST登录 第二次Get 第三次GET 第四次GET 第五次GET 测试 完整代码 前言 最近在做一个APP,需要获取我们学校--武汉纺织大学皇家停水断电断 ...

  5. python爬取网页信息

    最近在学习python,发现通过python爬取网页信息确实方便,以前用C++写了个简单的爬虫,爬取指定网页的信息,代码随便一写都几百行,而要用python完成相同的工作,代码量相当少.前几天看到了一 ...

  6. python刷新页面_Python模拟浏览器爬取天猫信息

    由于工作需要,需要提取到天猫400个指定商品页面中指定的信息,于是有了这个爬虫.这是一个使用 selenium 爬取天猫商品信息的爬虫,虽然功能单一,但是也算是 selenium 爬虫的基本用法了. ...

  7. 以下用于数据存储领域的python第三方库是-Python3爬虫学习之MySQL数据库存储爬取的信息详解...

    本文实例讲述了Python3爬虫学习之MySQL数据库存储爬取的信息.分享给大家供大家参考,具体如下: 数据库存储爬取的信息(MySQL) 爬取到的数据为了更好地进行分析利用,而之前将爬取得数据存放在 ...

  8. MATLAB实战系列(二十八)-用matlab爬取火车票信息

    前言 之前博主使用matlab爬取火车票信息,博主觉得这个爬取过程还蛮有趣的,所以和大家分享一下如何用matlab爬取火车票信息. 比如我想要获取以下这些车次的始发站和终点站信息, 大家第一反应可能会 ...

  9. [python] 常用正则表达式爬取网页信息及分析HTML标签总结

    这篇文章主要是介绍Python爬取网页信息时,经常使用的正则表达式及方法.它是一篇总结性文章,实用性比较大,主要解决自己遇到的爬虫问题,也希望对你有所帮助~ 当然如果会Selenium基于自动化测试爬 ...

最新文章

  1. php 字典 枚举,秒爆十万字典:奇葩技巧快速枚举“一句话后门”密码
  2. 从零单排学Redis【青铜】
  3. 实行计算机分类标识管理的根本目的,会计信息系统试卷A及答案
  4. 龙的建模竟然能建成这个样子:向大佬低头
  5. HttpOperater
  6. 【算法分析与设计】实验 分治算法解决中位数问题
  7. Spring @RestController、@Controller区别
  8. 拓端tecdat|python在Scikit-learn中用决策树和随机森林预测NBA获胜者
  9. 【图像隐写】基于matlab GUI DWT+SVD数字水印【含Matlab源码 606期】
  10. BigGAN进化出最强形态BigBiGAN:重回表示学习,GAN之父点赞
  11. 全国计算机建模三等奖,喜报 | 建院学子喜获2019年第十三届全国大学生结构设计竞赛三等奖...
  12. python将红底证件照转成蓝底
  13. mstar Android解锁,液晶电视维修之Mstar方案从强刷包提取引导的方法
  14. springboot 整合谷歌 gRPC
  15. JSP课程设计——民航售票管理系统
  16. Java问题---扑克牌
  17. 11、异常 异常解决方案
  18. python绘制相频特性曲线_数据分析之Matplotlib和机器学习基础
  19. 网站托管收费是否有标准
  20. PayPal取消了连连支付快捷提现,我是如何提现到国内的?

热门文章

  1. 台式计算机电源机箱维修,电脑机箱电源检测及修理办法
  2. 限量版 情感智能机器人Pepper今天发售了!
  3. 算法实战(二)两数相加
  4. InfoPath与SharePoint之(一) InfoPath和SharePoint List
  5. DEV Gridcontrol 多选功能实现
  6. 你离真正的全栈开发人员只差学会 Electron
  7. 模拟量、数字量与开关量的区别
  8. 迅为龙芯2K1000核心板国产Linux工业板卡适用于工控电力能源行业方案
  9. 如何作一名成功创业者
  10. EXCEL中如何通过经纬度计算两点之间的距离