自动化爬虫很难吗?3分钟手把手带你学会应用!

2779 篇文章 4 订阅
2619 篇文章 14 订阅

很多同学对爬虫比较感兴趣,很想知道什么是爬虫到底是什么,爬虫学起来难不难?从哪里入手开始学习?

这里我想跟大家说,其实你们学完自动化之后,要想学习爬虫,其实非常简单,爬虫里面用到的技术,我们在学习自动化的时候基本上都学过了。

只不过不知道如何使用自动化的技术来实现爬虫,那么接下来我们就来聊聊如何使用自动化的项目技能来实现爬虫。

01 什么是爬虫

学习爬虫之前我们来先了解一下爬虫的概念,什么是爬虫?

网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫

 ——百度百科解释

图片

爬虫和实现自动化实现流程对比:

图片

02 爬虫和实现使用技术分析

发请求,访问页面
▲ requests(接口自动化必备技能)
▲ selenium(web自动化必备技能)
提取页面数据
▲ Xpath(web自动化元素定位的技能)

可以看得出,上述所需要的技能

03 环境安装

首先第一步就是关于环境的安装,环境安装前提:安装好python。然后在这边,我们还需要安装两个第三方库,第一个是requests,是用来发送网络请求的,第二个库是lxml是用来解析页面数据的。

1、requests模块安装

图片

2、lxml模块安装

图片

04 数据爬取实战

目标:获取北京地区自动化测试的所有热门岗位!

图片

目标地址:

https://www.zhipin.com/c101010100/?query=%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95&ka=sel-city-101010100
待获取的目标数据
▲ 职位名称
▲ 薪资范围
▲ 所属公司
爬虫实现的步骤:
1、构造请求数据

在发送请求时,注意请求头要写加上cookie和user-agent,否则无法获取到正确的页面数据(关于cookie和user-agent可以去浏览器上复制过来)

# 定义请求头
header = {
    "cookie":"_uab_collina=156013238928273573152563; lastCity=101010100; __c=1576727614; __g=-; Hm_lvt_194df3105ad7148dcf2b98a91b5e727a=1576727614; Hm_lpvt_194df3105ad7148dcf2b98a91b5e727a=1576727614; __l=l=%2Fwww.zhipin.com%2F%3Fka%3Dheader-home-logo%26city%3D101010100&r=https%3A%2F%2Fwww.zhipin.com%2F%3Fka%3Dheader-home-logo&friend_source=0&friend_source=0; __a=12875726.1576727614..1576727614.2.1.2.2; __zp_stoken__=d78eVjuAQ37e1fHI1t6xEr7uLmzoPWCALMYtdQ%2Fk59lWJaxYFJnngZe64gxX529QtBuD3y4nmrjnnAYCmBn98W3jznBL%2BPb02LVrGXjyqcKWtU7k%2BxcdENjUJKQiEEjEiL2R",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36",
}

# 目标网站的地址
url = "https://www.zhipin.com/c101010100/?query=%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95&ka=sel-city-101010100"
2、发送网络请求

图片

3、提取页面数据

图片

综合整理代码如下:
"""
============================
author:MuSen
time:2019/6/10
E-mail:3247119728@qq.com
============================
"""
import requests
from lxml import etree

s = requests.session()
header = {
    "cookie":"_uab_collina=156013238928273573152563; lastCity=101010100; __c=1576727614; __g=-; Hm_lvt_194df3105ad7148dcf2b98a91b5e727a=1576727614; Hm_lpvt_194df3105ad7148dcf2b98a91b5e727a=1576727614; __l=l=%2Fwww.zhipin.com%2F%3Fka%3Dheader-home-logo%26city%3D101010100&r=https%3A%2F%2Fwww.zhipin.com%2F%3Fka%3Dheader-home-logo&friend_source=0&friend_source=0; __a=12875726.1576727614..1576727614.2.1.2.2; __zp_stoken__=d78eVjuAQ37e1fHI1t6xEr7uLmzoPWCALMYtdQ%2Fk59lWJaxYFJnngZe64gxX529QtBuD3y4nmrjnnAYCmBn98W3jznBL%2BPb02LVrGXjyqcKWtU7k%2BxcdENjUJKQiEEjEiL2R",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36",
}

# 目标网站的地址
url = "https://www.zhipin.com/c101010100/?query=%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95&ka=sel-city-101010100"

# 发送请求,获取页面内容
response = s.get(url=url, headers=header)

# 获取页面内容(代码)
html_str = response.content.decode('utf8')
print(html_str)

# 转换
html = etree.HTML(html_str)

# 提取目标数据(招聘岗位)

# job_list = html.xpath('//*[@id="main"]/div/div[3]/ul/li')

# 提取所有的岗位节点
job_list = html.xpath('//div[@class="job-list"]/ul/li')
print(job_list)

for job in job_list:
    # 获取岗位名称
    job_name = job.xpath('.//div[@class="job-title"]/text()')
    # 获取薪资待遇
    price = job.xpath('.//span[@class="red"]/text()')
    # 获取公司名称
    job_company = job.xpath('.//div[@class="company-text"]/h3/a/text()')

    # 格式化一下数据
    job_data = '岗位名称:{}  薪资:{}  公司:{}'.format(job_name[0], price[0], job_company[0])
    print(job_data)

运行以上代码就能爬取到我们所需要的数据,结果如下:

最后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值