初识爬虫

 

 

初识爬虫     Python很火,已经成为世界上最流行的编程语言之一。它上手简单,可以做很多事情,web开发、科学计算、3D建模、人工智能、嵌入式开发、云计算等等都能看到Python的身影;它还可以爬取你想要的数据,可以做外挂,之前的微信跳一跳,12306抢票等都可以用Python实现,还有很多数据分析、项目系统、聊天系统、游戏等等,既然它这么牛X,人生苦短,我要学Python!

 

什么是爬虫?

 

打开浏览器,输入百度网址http://www.baidu.com回车即可看到一个网页

 

10.png

 

大家一定很熟悉吧,但是当你按下ctrl+U键后(或者右键点击“查看网页源代码”),会变成这个样子的

 

10.png

 

你一定会说这是什么鬼,有没有想过,网上这么多网站,背后都是一些数据,如果用一个自动化的程序,轻松把它们给爬取下来,是不是很爽?比如一些小电影网站,我们用python写几行代码,然后一运行,分分钟程序就帮我们爬取了所有小电影到我们本地硬盘;再比如,想了解一个行业的趋势,是不是可以把它们历年的数据都爬取下来,然后对这些数据进行一些分析呢?这个自动化程序就是“爬虫”!

 

怎么玩爬虫?

 

互联网上众多的网站都是托管在服务器上的,这些服务器24小时运行,时刻等待着用户的请求。爬虫,首先会模拟请求,就像在浏览器上输入网址然后回车一样,爬虫利用一些HTTP库向指定的服务器发起请求(爬虫会假装自己是浏览器),大多数的服务器会傻不拉叽的以为是真浏览器发送的请求(当然有些精明的网站它们会建立一些反爬虫机制),就直接返回数据给爬虫,这样我们就可以对这些数据进行“微”操作了。不同情况下服务器返回给我们的数据格式不一样,有HTML、JSON、二进制的数据,我们可以使用不同的方式对它们进行处理并进行保存,保存的方式有数据库、硬盘等。

 

总结

 

以上就是Python爬虫的爬取流程,这是我们开启爬虫体系的第一篇,接下来我们将一步一步来操作我们的爬虫。今天让我们一起学习如何利用爬虫来制作一个“京东秒杀”的小脚本。

 

1

首先需要配置好环境:手动下载安装Anaconda3-2019.03、PyCharm 2019.1.3、chromedrive(版本号必须跟你的谷歌浏览器版本号一致,下载解压到和python.exe在一个文件夹里,https://sites.google.com/a/chromium.org/chromedriver/home需要外网)

2

安装selenium(一个用于WEB应用程序自动化测试工具),具体方法:鼠标左键点”开始”->windows系统->命令提示符->右键->更多->以管理员身份运行->输入pip install selenium回车即可安装成功

 

3

导入以下几个模块(详情请看代码注释)

from selenium import webdriver

import time 

import datetime

11.png

4

登录你的京东账号:

driver = webdriver.Chrome()

driver.set_window_size(1280, 960)

driver.implicitly_wait(0.5)

print(‘start webdriver’)

driver.get(“http://www.jd.com”)

print(‘get web in’)

12.png

 

5

接下来需要登录京东账号,查找’你好,请登录’这个文本内容并点击:

driver.find_element_by_link_text(‘你好,请登录’).click()

time.sleep(10)         

print(‘已登录!’)

13.png

 

6

输入你要秒杀的商品网址:

driver.get(‘https://item.jd.com/100003258248.html‘)

 

3.png

 

7

导入一个时间模块datetime,需要用命令行输入:鼠标右键“开始”->运行->cmd回车->python回车->import datetime回车->datetime.datetime.now()->会打印出现在的时间格式,如datetime.datetime(2019, 6, 19, 18, 27, 31, 626494)->now = datetime.datetime.now()回车->now.strftime(‘%Y-%m-%d %H:%M:%S’)回车->’2019-06-19 18:45:47′

4.png

 

8

设置秒杀时间:

buy_time = ‘2019-06-19 21:08:00’ 

print(“buy_time” + buy_time + “等待时间到达…”)

14.png

 

9

设置循环,当条件不满足时,一直循环下去,当条件满足时退出循环:

while True:             #条件不满足时,一直循环下去

    now = datetime.datetime.now()         #获取当前实时时间

    print(‘当前北京时间: {}’.format(now))

15.png

 

10

监控商品秒杀时间:假如现在时间等于设定的购买时间

if now.strftime(‘%Y-%m-%d %H:%M:%S’) == buy_time:

16.png

 

11

提交订单:

driver.find_element_by_id(‘btn-onkeybuy’).click()  

        driver.find_element_by_id(‘order-submit’).click()  

        print(“—–已提交订单—–“)

        break               #条件满足就退出循环

    time.sleep(0.5)

17.png

 

‘btn-onkeybuy’及’order-submit’的获取方法相同,详见下图

 

5.png

 

12

在pycharm中右键运行,哈哈,你要秒杀的商品是不是已到手了呢,24小时之内付款它就真正的属于你!是不是太爽了~

 

7.png

 

13

下面是本次的完整代码(优化后的代码可私信索取)

 

18.png

 

 

1558612731.png这是一个有温度的公众号

 

 

往期精彩回顾Pycharm2019.1.3永久激活
限时分享|观影神器
给IPTV插上翅膀!

 

 

 

 

posted on 2019-06-22 17:13 RyanLea 阅读() 评论() 编辑 收藏

版权声明:本文为RyanLea原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/RyanLea/p/11069592.html