三分钟学会使用自动化的技术写爬虫!

本贴最后更新于 1359 天前,其中的信息可能已经斗转星移

三分钟学会使用自动化的技术写爬虫!

很多同学对爬虫比较感兴趣,很想知道什么是爬虫到底是什么,爬虫学起来难不难?从哪里入手开始学习?这里我我想跟大家说,其实你们学完自动化之后,要想学习爬虫,其实非常简单,爬虫里面用到的技术,我们在学习自动化的时候基本上都学过了,只不过不知道如何使用自动化的技术来实现爬虫,那么接下来我们就来聊聊如何使用自动化的项目技能来实现爬虫。

什么是爬虫?

学习爬虫之前我们来先了解一下爬虫的概念,什么是爬虫?网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫      ——百度百科解释

image.png

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

image.png

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

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

环境安装

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

1、requests模块安装
# 发送http请求的模块
pip install requests
2、lxml模块安装
# xpath提取数据要用的模块
pip install lxml

数据爬取实战

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

image.png

爬虫实现的步骤:
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、发送网络请求
import requests

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

# 获取页面内容(代码)
html_str = response.content.decode('utf8')
print(html_str)
3、提取页面数据
from lxml import etree
# 转换为XML文档
html = etree.HTML(html_str)
# 提取所有的岗位节点
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)
综合整理代码如下:
"""
============================
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)

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

image.png

  • Python
    101 引用 • 234 回帖 • 1 关注
  • Requests
    5 引用 • 5 回帖
1 操作
mslemonban 在 2020-08-06 17:47:27 更新了该帖
回帖
请输入回帖内容 ...

代开银行存款证明公司临汾银行定期存单信誉保证伊春资信证明怎么打印通化资金证明代开周口留学存款证明哪家比较好沈阳代办银行存款证明宝鸡做企业资金证明黄冈银行定期存单费用台州代办出国留学存款证明昆明查企业资金证明莆田企业资信证明定制遵义银行定期存单价格漯河开具出国留学存款证明玉林定制银行存款证明普洱存款证明代发永州打印出国留学存款证明阳江出国留学资金证明开具蚌埠订做企业资金证明三门峡定期存单哪家比较好广安办资金证明淮安出国留学资金证明定做铜陵做存款证明安康企业资信证明公司济南存款证明办理遵义银行存款证明模板三亚银行定期存单模板鸡西留学存款证明费用大连出国留学存款证明代发云浮留学存款证明图片唐山定期存单代做泰州出国留学存款证明制作香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声汪小菲曝离婚始末卫健委通报少年有偿捐血浆16次猝死单亲妈妈陷入热恋 14岁儿子报警雅江山火三名扑火人员牺牲系谣言手机成瘾是影响睡眠质量重要因素男子被猫抓伤后确诊“猫抓病”中国拥有亿元资产的家庭达13.3万户高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了男孩8年未见母亲被告知被遗忘张家界的山上“长”满了韩国人?倪萍分享减重40斤方法许家印被限制高消费网友洛杉矶偶遇贾玲何赛飞追着代拍打小米汽车超级工厂正式揭幕男子被流浪猫绊倒 投喂者赔24万沉迷短剧的人就像掉进了杀猪盘特朗普无法缴纳4.54亿美元罚金周杰伦一审败诉网易杨倩无缘巴黎奥运专访95后高颜值猪保姆德国打算提及普京时仅用姓名西双版纳热带植物园回应蜉蝣大爆发七年后宇文玥被薅头发捞上岸房客欠租失踪 房东直发愁“重生之我在北大当嫡校长”校方回应护栏损坏小学生课间坠楼当地回应沈阳致3死车祸车主疑毒驾事业单位女子向同事水杯投不明物质路边卖淀粉肠阿姨主动出示声明书黑马情侣提车了奥巴马现身唐宁街 黑色着装引猜测老人退休金被冒领16年 金额超20万张立群任西安交通大学校长王树国卸任西安交大校长 师生送别西藏招商引资投资者子女可当地高考胖东来员工每周单休无小长假兔狲“狲大娘”因病死亡外国人感慨凌晨的中国很安全恒大被罚41.75亿到底怎么缴考生莫言也上北大硕士复试名单了专家建议不必谈骨泥色变“开封王婆”爆火:促成四五十对测试车高速逃费 小米:已补缴天水麻辣烫把捣辣椒大爷累坏了

代开银行存款证明公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化