不论是自然语言处理还是计算机视觉,做机器学习算法总会存在数据不足的情况,而这个时候就需要我们用爬虫获取一些额外数据。这个项目介绍了如何用 Python 登录各大网站,并用简单的爬虫获取一些有用数据,目前该项目已经提供了知乎、B 站、和豆瓣等 18 个网站的登录方法。项目作者:CriseLYJ。

作者收集了一些网站的登陆方式和爬虫程序,有的通过 selenium 登录,有的则通过抓包直接模拟登录。作者希望该项目能帮助初学者学习各大网站的模拟登陆方式,并爬取一些需要的数据。

作者表示模拟登陆基本采用直接登录或者使用 selenium+webdriver 的方式,有的网站直接登录难度很大,比如 qq 空间和 bilibili 等,采用 selenium 登录相对轻松一些。虽然在登录的时候采用的是 selenium,但为了效率,我们也可以在登录后维护得到的 cookie。登录后,我们就能调用 requests 或者 scrapy 等工具进行数据采集,这样数据采集的速度可以得到保证。

目前已经完成的网站有:Facebook

无需身份验证即可抓取 Twitter 前端 API

微博网页版

知乎

QQZone

CSDN

淘宝

Baidu

果壳

JingDong 模拟登录和自动申请京东试用

163mail

拉钩

Bilibili

豆瓣

Baidu2

猎聘网

微信网页版登录并获取好友列表

Github

爬取图虫相应的图片

如下所示,如果我们满足依赖项,那么就可以直接运行代码,它会在图虫网站中下载搜索到的图像。

如下所示为搜索「秋天」,并完成下载的图像:

每一个网站都会有对应的登录代码,有的还有数据的爬取代码。以豆瓣为例,主要的登录函数如下所示,它会获取验证码、处理验证码、返回登录数据完成登录,并最后保留 cookies。

def login():

captcha, captcha_id = get_captcha()

# 增加表数据

datas['captcha-solution'] = captcha

datas['captcha-id'] = captcha_id

login_page = session.post(url, data=datas, headers=headers)

page = login_page.text

soup = BeautifulSoup(page, "html.parser")

result = soup.findAll('div', attrs={'class': 'title'})

#进入豆瓣登陆后页面,打印热门内容

for item in result:

print(item.find('a').get_text())

# 保存 cookies 到文件,

# 下次可以使用 cookie 直接登录,不需要输入账号和密码

session.cookies.save()

其中获取并解决验证码的函数如下:

def get_captcha():

'''

获取验证码及其ID

'''

r = requests.post(url, data=datas, headers=headers)

page = r.text

soup = BeautifulSoup(page, "html.parser")

# 利用bs4获得验证码图片地址

img_src = soup.find('img', {'id': 'captcha_image'}).get('src')

urlretrieve(img_src, 'captcha.jpg')

try:

im = Image.open('captcha.jpg')

im.show()

im.close()

except:

print('到本地目录打开captcha.jpg获取验证码')

finally:

captcha = input('please input the captcha:')

remove('captcha.jpg')

captcha_id = soup.find(

'input', {'type': 'hidden', 'name': 'captcha-id'}).get('value')

return captcha, captcha_id

当然这些都是简单的演示,在 GitHub 项目中可以找到更多的示例。此外,作者表明由于网站策略或者样式改变而导致代码失效,我们也可以提 Issue 或 Pull Requests。最后,该项目未来还会一直维护,很多东西哦也会慢慢改进,项目作者表明:项目写了一段时间后,发现代码风格、程序易用性、可扩展性、代码的可读性,都存在一定的问题,所以接下来最重要的是重构代码,让大家可以更容易的做出一些自己的小功能;

如果读者觉得某个网站的登录很有代表性,可以在项目 issue 中提出;

网站的登录机制有可能经常的变动,所以当现在的模拟的登录的规则不能使用的时候,请项目在 issue 中提出。

python登录网站后爬取数据_用 Python 登录主流网站,我们的数据爬取少不了它相关推荐

  1. python安装完后无法打开运行_安装Python完成后无法正确运行

    1安装python好多次总是在最后出现无法访问WindowsInstaller服务问题,导致安装失败我当时以为是python的安装文件有问题,下载了多个版本的安装文件,还是出现这个问题因此,我尝试输入 ...

  2. python爬取行业数据_用Python进行Web爬取数据

    介绍 我们拥有的数据太少,无法建立机器学习模型.我们需要更多数据! 如果这句话听起来很熟悉,那么你并不孤单!希望获得更多数据来训练我们的机器学习模型是一个一直困扰人们的问题.我们无法在数据科学项目中获 ...

  3. java爬取网页数据_利用Python做数据分析—对前程无忧数据类岗位进行分析

    引言 随着时代的发展,我国在各行各业都需要大量的人才引进,处于近几年最热门的行业也称"最火行业":大数据.数据分析.数据挖掘.机器学习.人工智能,这五门行业各有不同又互有穿插.近几 ...

  4. python爬知识星球付费数据_用python爬取知识星球

    去年我们做过一个叫「学长问答」的社群活动,里面沉淀了大量有价值的互动信息,后来因为各种原因终止了.今天和涂腾聊起来,觉得这些信息就这么沉寂了太浪费.所以就试着用python爬取了知识星球的内容. 这个 ...

  5. 如何使用python编程抢京东优惠券 知乎_学好Python爬取京东知乎价值数据

    原标题:学好Python爬取京东知乎价值数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这 ...

  6. python 爬取链家数据_用python爬取链家网的二手房信息

    题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...

  7. python爬取股票信息_利用Python爬取网易上证所有股票数据(代码

    利用Python爬取网易上证所有股票数据(代码 发布时间:2018-04-14 17:30, 浏览次数:1261 , 标签: Python import urllib.request import r ...

  8. python爬取饿了么外卖商家数据_用python抓取饿了么无证店铺

    一.前言 饿了么平台上很多店铺都无营业执照,只能借用他人的营业执照上传开店.那就想看看附近有多少这样无证共用营业执照的店铺. 先看一下抓取的截图,竟然有这么多店没有营业执照. mongodb3.png ...

  9. python如何爬虫股票数据_如何抓取股票数据_用Python抓取新浪的股票数据

    python爬虫成长之路(一)抓取证券之星的股票数据 其中编译匹配模式findall方法使用这个匹配模式来匹配所需的信息并以列表的形式返回.正则表达式的语法非常多.下面我只列出使用的符号的含义.匹配除 ...

最新文章

  1. 用UML做好系统分析
  2. Android自定义组合控件
  3. php中需要注意的问题
  4. 4.WaitForSingleObject函数分析
  5. 用c语言实现存储和读取图片文件,C++实现单张图片读取和保存
  6. 【老孙随笔】项目经理要如何看待技术?
  7. 入坑推荐系统,从Google这篇开始
  8. C++实现选择排序(附完整源码)
  9. String中intern的方法
  10. Python 中的闭包、匿名函数、decorator 装饰器与python的偏函数
  11. mysql是小型数据库_mysql小型数据库
  12. mysqldump备份原理6
  13. STM32F10x_StdPeriph_Template
  14. LODOP打印分页出现空白页
  15. iOS开发之--内购、GameCenter、iCloud、Passbook功能开发汇总
  16. edge搁置标签页_如何自定义Microsoft Edge的新标签页
  17. 【信息收集】第六章 社会工程学
  18. linux定时运行命令
  19. 北上资金近1天流入排行榜
  20. MBA案例分析(管理之道在于“借力”二)

热门文章

  1. linux 单个网卡配置多个IP
  2. 选择主键:自然键还是代理键?
  3. tamper绕WAF小结
  4. Android开发 ----------怎样真机调试?
  5. salt.states.file试用
  6. Java继承时构造函数的关系
  7. web.config加密解密批处理
  8. 122网络各层中的设备是什么以及工作原理
  9. 硅谷大佬为何加速逃离加州:赋税过重,生活质量持续恶化
  10. opencv 将图片合成为视频流(AVI格式)