《python 爬虫教程 知乎》 怎样用Python设计一个爬虫模拟登陆知乎

python 爬虫教程 知乎2020-09-23 01:45:13人已围观

怎样用Python设计一个爬虫模拟登陆知乎?

两种方法:

1.带cookielib和urllib2

import urllib2

import urllib

import cookielib

def login():

email = raw_input("请输户:")

pwd = raw_input("请输入密码:") data={"email":email,"password":pwd}

post_data=urllib.urlencode(data) cj=cookielib.CookieJar()

opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))headers

={"User-agent":"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1"}website =

raw_input('请输入网址:')req=urllib2.Request(website,post_data,headers)content=opener.open(req)print

content.read()

2.使用selenium

import selenium import webdriver

browser=webdriver.Firefox()

browser.get("Url")

browser.find_element_by_id(" ").sendkey("username")

browser.find_element_by_id(" ").sendkey("pass")

browser.find_element_by_id(" ").click()

其实我这个最简单了,用的python3,requests, 只需要一次,就会保存cookies,下次登录使用cookies登录。

第一步、打开首页获取_xref值,验证图片 第二步、输入账号密码 第三步、看是否需要验证、要则下载验证码图片,手动输入

第四步、判断是否登录成功、登录成功后获取页面值。

怎样用Python设计一个爬虫模拟登陆知乎

写爬虫的话,可以看看神箭手云爬虫开发文档,里面的教程很详细,各种基本爬虫基础和进阶开发知识都有介绍,而且上面还有不少爬虫源码分享。

如何从零基础开始写一个关于搜索知乎答案的python爬虫

首先来说爬

关于爬虫一个不太严谨的理是,以给爬虫程序设定初始的目标页面,然后程序返回目标页面的HTML文档后,从中提取页面中的超链接,然后继续爬到下一个页面中去。从这些页面的HTML文档中可以通过对标签的处理解析出你想要的具体内容。

所以我们可以这么来简单定义一个爬虫的工作过程:

抓取目标页面

解析页面文档获得目的信息

继续爬取下一个页面

存储结果

为了实现这些工作,你需要学习一些常用库的简单用法,包括但不限于:

urllib、urllib2、urllib.request、cookilib (Python的内置库,用来处理HTTP请求)

requests (第三方库,推荐使用requests来处理请求,比urllib方便一些)

re、beautifulsoup (正则表达式匹配内容、bs4解析html文档)

其次呢,因为你要跟网页的源码打交道,尤其是解析HTML文档,所以你最好对HTML和浏览器通信有点简单的了解,会使用Firebug查看源码定位信息在源码中的位置。

落实到题主给出的示例

http://www.zhihu.com/topic/19554091/questions?page=1

这是知乎数学话题全部问题的URL构成。可以看到我们只要修改最后的数字就可以访问到不同的页数。

数学话题下一共有1254页。所以你可以通过简单的对page做循环遍历获得所有问题。

(这种做法是直接构造了地址,或者你可以在爬取每一页以后从页面中得到下一页的链接,这样更像是一个爬虫)

如何使用python爬取知乎数据并做简单分析

一、使用的技术栈:

爬虫:python27 requests json bs4 time

分析工具: ELK套件

工具:pycharm

数据成果的可视化分析

1.性别分布

0 代表的是男性 ^ . ^

1 代表的是女性

-1 性别不确定

可见知乎的用户男性颇多。

二、粉丝最多的top30

粉丝最多的前三十名:依次是张佳玮、李开复、黄继新等等,去知乎上查这些人,也差不多这个排名,说明爬取的数据具有一定的说服力。

三、写文章最多的top30

四、爬虫架构

爬虫架构图如下:

说明:

选择一个活跃的用户(比如李开复)的url作为入口url.并将已爬取的url存在set中。

抓取内容,并解析该用户的关注的用户的列表url,添加这些url到另一个set中,并用已爬取的url作为过滤。

解析该用户的个人信息,并存取到本地磁盘。

logstash取实时的获取本地磁盘的用户数据,并给elsticsearchkibana和elasticsearch配合,将数据转换成用户友好的可视化图形。

五、编码

爬取一个url:

解析内容:

存本地文件:

代码说明:

* 需要修改获取requests请求头的authorization。

* 需要修改你的文件存储路径。

源码下载:点击这里,记得star哦!https : // github . com/forezp/ZhihuSpiderMan六、如何获取authorization

打开chorme,打开https : // www. zhihu .com/,

登陆,首页随便找个用户,进入他的个人主页,F12(或鼠标右键,点检查)七、可改进的地方

可增加线程池,提高爬虫效率

存储url的时候我才用的set(),并且采用缓存策略,最多只存2000个url,防止内存不够,其实可以存在redis中。

存储爬取后的用户我说采取的是本地文件的方式,更好的方式应该是存在mongodb中。

对爬取的用户应该有一个信息的过滤,比如用户的粉丝数需要大与100或者参与话题数大于10等才存储。防止抓取了过多的僵尸用户。

八、关于ELK套件

关于elk的套件安装就不讨论了,具体见官网就行了。网站:https : // www . elastic . co/另外logstash的配置文件如下:

从爬取的用户数据可分析的地方很多,比如地域、学历、年龄等等,我就不一一列举了。另外,我觉得爬虫是一件非常有意思的事情,在这个内容消费升级的年代,如何在广阔的互联网的数据海洋中挖掘有价值的数据,是一件值得思考和需不断践行的事情。

java工程师一般用python做什么 知乎

#做网站后台

Python站后台这边有大量的成熟的框如django,flask,bottle,tornado,我曾经flask和django搭建了的两个网站已经上线

http://zhaduixueshe.com

http://aljun.me

#写网络爬虫

Python写爬虫非常简单,库很健全

以下是我写的一些爬虫教程和心得

http://aljun.me/post/17

http://aljun.me/post/18

#科学计算

Python有三大神器:numpy,scipy,matplotlib,其中numpy很多底层使用C语言实现的,所以速度很快,我曾经用它参加各种数学建模大赛,完全可以替代r语言和MATLAB

以下是我写的科学计算简单教程

http://aljun.me/post/16

#数据挖掘,机器学习

Python

的机器学习包很多,或者自己可以试着实现机器学习算法,因为Python的类似伪代码的语法,很容易快速实现自己的想法,另外主流的机器学习算法都有成熟

的包,加上谷歌开源的TensorFlow,常用的机器学习包:scikit-learn,pattern,jieba,pybrain等等

#数据科学

最近spark,Hadoop都开了Python的接口,所以使用Python做大数据的mapreduce也非常简单,加上py对数据库支持都很好,或者类似sqlalchemy的orm也非常强大好用

以及剩下的码算法,玩玩树莓派什么的我就不多说了,

py的强大其实在于他能迅速的实现想法

版权声明:本站所有文章皆为原创,欢迎转载或转发,请保留网站地址和作者信息。

python爬虫设计在哪里_《python 爬虫教程 知乎》 怎样用Python设计一个爬虫模拟登陆知乎...相关推荐

  1. python 蟒蛇程序详解_软件测试学习教程——【大蟒蛇】python基础

    一,print()函数 print 作用:把" "内部的内容,输出到屏幕. print("hello world") print("hello pyt ...

  2. 爬虫实战3:模拟登陆知乎并爬取任意帖子数据

    ​      刚学爬虫时,看到一篇文章硬核破解知乎登陆,心潮澎湃,真男人!符合我的胃口!哼哧哼哧的立刻安排!   (半个小时过后)   似乎我是弱智?很多看不懂?(百度乱搜中-)恩还有种简单的?sel ...

  3. python 登录知乎_python模拟登陆知乎(最新版)

    原因 为啥要写这一篇文章呢? (主要是qq群内有人在模拟登陆知乎,一直不成功)然后我抓包看了下,发现知乎登陆页已经改版了,而且难度大大提高了. 开始抓包 首先内,还是打开知乎首页,然后输入账号密码,登 ...

  4. python实用脚本 知乎_Python 爬虫模拟登陆知乎

    在之前写过一篇使用python爬虫爬取电影天堂资源的文章,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...

  5. python爬虫模拟登陆知乎网

    自从暑假学了大概一个月左右的爬虫,开学之后就没怎么搞爬虫了,当时也就学到scrapy框架就放下了,大致了解了一下框架,不是太理解,但是在这之前本人的爬虫水平也仅仅局限于爬取简单页面,爬取动态页面也稍微 ...

  6. python3网络爬虫开发实战豆瓣_大牛程序员教你1天入门Python3 网络爬虫例子

    在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材.其实我们可以通过python 来实现这样一个简单的爬虫功能,把我们想 ...

  7. python module是干什么的_如何最简单、通俗地理解Python的模块?

    目录: 一.笔记 二.笔记目录 一.笔记 1) 模块 ① Python模块(Module),是一个Python文件,以.py结尾,包含了Python语句和Python对象定义,模块让你能够有逻辑地组织 ...

  8. python量化投资系统构建_零基础搭建量化投资系统 以Python为工具

    章 准备工作 1 1.1 Python简介 1 1.2 Python安装 3 1.3 Pip包管理工具 13 1.4 Python常用开发工具安装 19 1.5 Python集成开发环境Spyder的 ...

  9. python 读取鼠标选中文本_木辛老师的编程课堂:Python和Qt之页面布局实战篇(一)...

    通过前几节课的学习,我们已经基本上掌握了使用Qt Designer完成简单的布局管理.通过这些知识的学习,我们算是对PyQt进行了初步的了解,也算是入门了! 但是仅仅掌握这些知识还是远远不够的: 高深 ...

最新文章

  1. tensorflow padd
  2. Item 9 Always override hashCode when you override equals HASHMAP扩展
  3. matlab画图模糊,[转载]matlab中模糊工具箱的使用
  4. 第17章:图像分割提取
  5. flink 不设置水印_从0到1学习Flink—— Flink parallelism 和 Slot 介绍
  6. 【离散数学】两类有限状态自动机
  7. MAVEN Error: Using platform encoding (GBK actually) to copy filtered resources.....
  8. Java如何简单实现一个定时器
  9. 稳站大屏 AIoT 时代之巅,创维 Swaiot 生态品牌实现全面布局!
  10. JAVA中自增自减运算符(i++与++i的区别)
  11. 在powerDesigner中通过SQL生成pdm
  12. redis中key的归类
  13. android wifi音箱,(原创)图文并茂教程,手把手教你用安卓手机当电脑的无线扬声器(喇叭)...
  14. 煤矸石无线测温系统项目背景
  15. [转]Mediakit报告设备商的空间不足以执行此操作的纯MAC解法
  16. 五大企业面试真题(含腾讯)
  17. Power query(Power BI) 自动生成贷款公司的还款计划表
  18. 利用Python在互动吧网站自动抢票实战分析!你学废了吗
  19. Linux系统内存占用过高排查方法
  20. Office2013-2019安装教程

热门文章

  1. mysql提示python没有安装_MySQL-Python安装问题小记
  2. QC新旧七图汇总连载2——帕累托图(排列图)
  3. 计算机毕业设计之java+javaweb的学生综合测评管理系统
  4. 使用python获取股票指定日期交易代码数据
  5. 冰糖葫芦的php代码,形容冰糖葫芦好吃的词语-赞美冰糖葫芦的优美句子-吃冰糖葫芦的幽默句子...
  6. Lesson 1 A puma at large 内容鉴赏
  7. 阿里云市场StoneDB购买与部署指南
  8. 秒杀数字后端实现中clock gating使能端setup violation问题
  9. uloop分析和非阻塞标准输入的一种应用
  10. c语言红外解码程序,[转载]红外遥控和C语言51红外遥控解码程序设计实例