Python基础学习-爬虫小试3爬知乎用户小测

原创 2015年11月19日 09:58:49

*----------------------------------------------------------------编程届菜鸟-------------------------------------------------------*

任务:根据知乎用户页面,统计粉丝人数,并按照粉丝继续爬。最后按照粉丝数排序



import re
import requests

class crawlUser:

    #定义构造函数
    def __init__(self, userid,cookie):
        self.userId = userid
        self.fellowCount = 0
        self.fellowlist = []
        self.cookie = cookie

    def getpage(self):
        url = "http://www.zhihu.com/people/"+self.userId+"/followers"
        self.response = requests.get(url, cookies=self.cookie)

    def getfellowcount(self):
        reg = 'data-tip="p\$t\$(.+)"'
        pattern = re.compile(reg)
        self.fellowCount = re.findall(pattern, self.page)
        count=0
        for x in self.fellowCount:
            if (count%2)==0:
                self.fellowlist.append(x)
            count=count+1
        return self.fellowlist

m_cookie={"_za":"****************","a2404_times":"129",
          "q_c1":"*********************",
          "_xsrf":"********************",
          "cap_id":"**************************",
          "__utmt":"1","z_c0":"***********************1d5358",
          "unlock_ticket":"***********************6d",
          "__utma":"********************************",
          "__utmb":"15**************","__utmc":"*****",
          "__utmz":"155**********************************/",
          "__utmv":"***************************************1"}

userlist={}
tempUserList=["****"]
flag=0
iter=0
while flag<len(tempUserList) and iter<10:
    user = crawlUser(tempUserList[flag],m_cookie)
    user.getpage()
    fellowlist=user.getfellowcount()
    userlist[tempUserList[flag]]=len(fellowlist)
    for x in fellowlist:
        if x not in tempUserList:
            tempUserList.append(x)
    print("user %s fellowed %d"%(tempUserList[flag],userlist[tempUserList[flag]]))
    flag=flag+1
    iter=iter+1

print("crawl is done!")
sortRes=sorted(userlist.items(),key=lambda d:d[1])
"""f=open("userlist.txt","w+")
f.write(userlist)
f.close()"""
print(sortRes)
print("sort is done!")


【过程】

1、前两天小试的下载图片之类的练习后,今天这个比前两天的难度再加一点,但是不算难度太高的

2、绕不开登陆验证,所以用了本地的cookie,方法是直接从浏览器里复制的,方法有点low,求指教更好的

3、后面设置只抓取了10人,因为访问得频繁就被服务器给挂了,我对这块的学习也不够,王先森说可以对进程添加sleep处理


【感受】

1、实践才是学习的最快途径

2、requests比urllib好用太多了

3、pycharm只比Notepad好用一点点

4、路漫漫其修远兮


*-------------------------------------------本博客旨在记录学习历程,望前辈能人留言指教----------------------------------------*

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Python基础学习-爬虫小试2

import urllib.parse import urllib.request data =urllib.parse.urlencode({"wd": "haha"}) url="http://...
  • dai_fun
  • dai_fun
  • 2015年11月18日 15:02
  • 307

Python3爬虫(5)--获取知乎用户的粉丝

在上个爬虫中我们通过本地的四六级考生信息获取对应的成绩,这次我们主要是获取知乎用户的粉丝的相关信息存储在数据库中,数据库依然采用的是mysql数据库。这次爬取的是知乎上“余弦”的粉丝,我们在这个之前会...

Python3 爬虫基础系列教程(亲测有效)

前言:前些天有个学长跟我说,有个项目是关于Python爬虫的。我本来打算大三的时候在开始学的。既然,现在有需要那就从现在开始学习。之前我是从没有接触过Python,大概了花了一个月的时间接触。了解了下...

python3 [入门基础实战] 爬虫入门之xpath的学习

Xpath Xpath全程为xml路径语言,用来确定xml文档中某部分位置的语言。 使用Xpath需要安装lxml库,lxml为Python的第三方库,安装方法可以直接下载库文件手动添加到pyth...

python3 [入门基础实战] 爬虫入门之智联招聘的学习(一)

请转移新博客地址: http://blog.csdn.net/xudailong_blog 老实说:懵逼啊 这次爬取的是智联招聘上的求职数据,虽然没有仔细正确核对一下数据是否具有重复性,随机...

python学习笔记(3)--爬虫基础教程1

Python学习笔记(3)-爬虫基础教程(1)  参考网页:【1】.爬虫:http://www.cnblogs.com/fnng/p/3576154.html             ...

python3 [入门基础实战] 爬虫入门之智联招聘的学习(一)

老实说:懵逼啊 这次爬取的是智联招聘上的求职数据,虽然没有仔细正确核对一下数据是否具有重复性,随机抽查了些,数据大部分还是能对上来的,这次爬取的智联招聘上的数据90页,每页60条,主要抓取的是an...

python爬虫学习--pixiv爬虫(3)--关注用户作品爬取

国际榜的爬取算是我们爬取pixiv的一小步 接下来就是爬取关注用户的作品 首先我们来看一下正在关注的页面 这个userdata中有我们目前需要的所有信息,我们的第一个目标就是将这些信息全部提...

Python3爬虫学习笔记2.2——爬图片-妹子图

有失远迎,今天尝试爬取妹子图妹子图。 让老司机飙车

用Python在喜马拉雅音乐爬虫小试

前一段时间在廖雪峰老师的博客上跟着学了一遍python3,决定试着写一个简单的爬虫程序。工作中有同事问我喜马拉雅上的音频怎么下载,我都是让他们去到浏览区缓存文件夹里去找,改下后缀为mp3就可以播放了,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python基础学习-爬虫小试3爬知乎用户小测
举报原因:
原因补充:

(最多只允许输入30个字)