前面两篇文章讲了单页面如何爬取,那么我们来试试如何爬取二级页面。

在爬取页面的时候,需要有个良好的习惯,提前对爬取的页面和爬取思路进行一个分析。

目的:爬取携程无忧数据分析师的二级页面,获取每个岗位的要求。

页面的构成:二级页面是点击一级页面跳转的。

解决思路:
1、在一级页面中获取二级页面的链接
2、在二级二面中获取想要的数据。

这里我们会用到BeautifulSoup。

思路有了,那我们开始吧!

1、获取二级页面的链接,href路径获取,浏览器点开检查。找到相对应的href位置:

import requests
from bs4 import BeautifulSoup
from lxml import etree
import time
import csvheaders={'user-agent':'Mozilla/5.0'
}#模拟浏览器进行爬取url = 'https://search.51job.com/list/000000%252C00,000000,0000,00,9,99,%25E6%2595%25B0%25E6%258D%25AE%25E5%2588%2586%25E6%259E%2590%25E5%25B8%2588,2,'
#网页内容格式调整
i = 0
for n in range(1,10):r = url+str(n)+str('.html')html = requests.get(r,headers=headers)html.raise_for_status()html.encoding = html.apparent_encoding#内容获取的内容进行转码,以防出现乱码的情况。    soup = BeautifulSoup(html.text,'html.parser')liebiao = soup.find_all('p','t1')#获取第一页href相关的位置#print(liebiao)for item in liebiao:shuju = item.find('span')link = shuju.find('a')['href']提取出href.id = i+1  #写了一个自增长。方便自己查看当前数据是第几条。i = id         print(id,link)time.sleep(1)

好了,代码写好了,让我们来试试结果吧!

这里截取了部分数据,大家可以尝试一下,要是对路径获取不清楚的地方,可以去看一下我前面两篇文章。

2.获得了二级页面的连接,我们来通过这些链接抓取二级页面的数据吧!
先确认一下,我们要抓取哪些信息:

我们再把xpath获取内容的方法再回顾一遍,这里也可以用前面使用的新方法,全看个人喜好恩。
我们来看看获取二级页面内容的代码:

   date_html=requests.get(link,headers=headers).textf = etree.HTML(date_html)Date = f.xpath('/html/body/div[3]/div[2]/div[2]/div/div[1]/h1/@title')print(Date)name = f.xpath('/html/body/div[3]/div[2]/div[2]/div/div[1]/p[1]/a[1]/@title')print(name)money = f.xpath('/html/body/div[3]/div[2]/div[2]/div/div[1]/strong/text()')print(money)content = f.xpath('/html/body/div[3]/div[2]/div[3]/div[1]/div/p/text()')print(content)business = f.xpath('/html/body/div[3]/div[2]/div[4]/div[1]/div[2]/p[1]/@title')print(business)address = f.xpath('/html/body/div[3]/div[2]/div[2]/div/div[1]/p[2]/text()[1]')print(address)profession = f.xpath('/html/body/div[3]/div[2]/div[4]/div[1]/div[2]')for liebiao2 in  profession:profession2 = liebiao2.xpath('./p[3]/a/text()')print(profession2)

数据路径有相关的规律,大家可以调整一下,参考我的二篇文章。

完整代码结合起来看看:

import requests
from bs4 import BeautifulSoup
from lxml import etree
import time
import csvfp = open('C:/Users/MIiNA/Desktop/Date.csv','wt',newline='',encoding='utf_8_sig')
#fp = open('C:/Users/JX/Desktop/Date.csv','wt',newline='',encoding='utf_8_sig')
writer = csv.writer(fp)headers={'user-agent':'Mozilla/5.0'
}url = 'https://search.51job.com/list/000000%252C00,000000,0000,00,9,99,%25E6%2595%25B0%25E6%258D%25AE%25E5%2588%2586%25E6%259E%2590%25E5%25B8%2588,2,'
#网页内容格式调整
i = 0
for n in range(1,10):r = url+str(n)+str('.html')html = requests.get(r,headers=headers)html.raise_for_status()html.encoding = html.apparent_encoding     soup = BeautifulSoup(html.text,'html.parser')liebiao = soup.find_all('p','t1')for item in liebiao:shuju = item.find('span')link = shuju.find('a')['href']id = i+1i = id
#        print(id,link)print(id)time.sleep(1)date_html=requests.get(link,headers=headers).text  f = etree.HTML(date_html)Date = f.xpath('/html/body/div[3]/div[2]/div[2]/div/div[1]/h1/@title')print(Date)name = f.xpath('/html/body/div[3]/div[2]/div[2]/div/div[1]/p[1]/a[1]/@title')print(name)money = f.xpath('/html/body/div[3]/div[2]/div[2]/div/div[1]/strong/text()')print(money)content = f.xpath('/html/body/div[3]/div[2]/div[3]/div[1]/div/p/text()')print(content)business = f.xpath('/html/body/div[3]/div[2]/div[4]/div[1]/div[2]/p[1]/@title')print(business)address = f.xpath('/html/body/div[3]/div[2]/div[2]/div/div[1]/p[2]/text()[1]')print(address)profession = f.xpath('/html/body/div[3]/div[2]/div[4]/div[1]/div[2]')for liebiao2 in  profession:profession2 = liebiao2.xpath('./p[3]/a/text()')print(profession2)writer.writerow((id,Date,name,money,content,business,profession2,address))time.sleep(1)
fp.close()

上面代码把保存方式也加上了。看看结果如何!

有些数据为空没获取到,排查原因是个别二级页面网页结构不一样导致,不影响整体使用。

欢迎大家持续关注,后期为大家带来更多分享。

python数据爬虫——如何爬取二级页面(三)相关推荐

  1. python——图片爬虫:爬取爱女神网站(www.znzhi.net)上的妹子图 进阶篇

    在上一篇博客中:python--图片爬虫:爬取爱女神网站(www.znzhi.net)上的妹子图 基础篇 我讲解了图片爬虫的基本步骤,并实现了爬虫代码 在本篇中,我将带领大家对基础篇中的代码进行改善, ...

  2. Python Scrapy爬虫框架爬取51job职位信息并保存至数据库

    Python Scrapy爬虫框架爬取51job职位信息并保存至数据库 -------------------------------- 版权声明:本文为CSDN博主「杠精运动员」的原创文章,遵循CC ...

  3. 【Python】爬虫实例——爬取新闻并实现语音播报

    [Python]爬虫实例--爬取新闻并实现语音播报 本文涉及: 1.爬虫请求链接 2.文字转语音(TTS语音合成技术) 安装: pip install pyttsx3 pip install requ ...

  4. Web scraper使用教程-进阶用法(二)-爬取二级页面内容

    进阶用法(二)-爬取二级页面内容 1. 爬取网址 https://docs.microsoft.com/en-us/officeupdates/update-history-microsoft365- ...

  5. python爬取二级页面_爬虫代码改进(二)|多页抓取与二级页面

    本文是下面两篇文章的续篇 本系列包括如下内容抓取豆瓣top250一页多个字段 整合成列表 存储为json文件 定义成函数形式 多页抓取之构造url 多页抓取之翻页 抓取二级页面数据 通过生成器优化代码 ...

  6. Python Scrapy 爬虫框架爬取推特信息及数据持久化!整理了我三天!

    最近要做一个国内外新冠疫情的热点信息的收集系统,所以,需要爬取推特上的一些数据,然后做数据分类及情绪分析.作为一名合格的程序员,我们要有「拿来主义精神」,借助别人的轮子来实现自己的项目,而不是从头搭建 ...

  7. python爬虫--小白爬取csdn页面题目与链接

    爬取csdn页面题目与链接 前言 随着人工智能的不断发展,爬虫这门技术越来越重要-哈哈哈,太过官方.新手小白,过程较曲折,代码较不专业,欢迎批评与指教! 进入正题:本文主要爬取csdn博客某专栏下的题 ...

  8. Python简单爬虫入门-爬取链家租房网上的租房信息

    .又到了毕业季,租房成为广大毕业生关注的话题,考虑到只用到广州的租房信息,所以只爬取广州各个地区的租房信息,下面是用Python3.4.4编写简单爬虫爬取租房网信息的代码: #coding:utf-8 ...

  9. python入门爬虫之爬取百度首页的热搜榜

    博主的公众号:Java4y <<<<<<<<< 一个努力提高工作效率(增加摸鱼时间)的小白博主 >>>>>>& ...

最新文章

  1. R语言ggplot2可视化:自定义设置X轴上的时间间隔(中断、以年为单位),使用scale_x_date()自定义设置坐标轴间隔和标签、添加标题、副标题、题注信息
  2. KVM中virtio、vhost 和vhost-user比较(十一)
  3. 浅谈迷宫搜索类的双向bfs问题(例题解析)
  4. js实现线路流动_52期:实现redux与reactredux
  5. jmeter学习笔记(一)
  6. OpenShift 4 Tekton (4) - 使用Workspaces为包含Maven Build的Pipeline提速
  7. rose顺序图转换为协作图_如何用GX Developer编程软件编写SFC顺序功能图?
  8. html添加购买按钮,萤火小程序商城给前端和商品组件增加“购买”按钮的方法...
  9. vue在线引入阿里矢量图标
  10. ARM的存储控制器以及如何使用SDRAM
  11. 绿巨人(Hulk - Pure CSS)
  12. 运筹优化学习07:Lingo的 @if 函数的使用方法
  13. 灵遁者是散文:不可理解的痛
  14. 【面试高频】Java设计原则总结
  15. 欧拉φ函数和欧拉降幂公式
  16. Error mounting /dev/sda7 at 解决方法
  17. 人话解读LGPLv3
  18. Java行业2019年的发展前景
  19. 12种超短线操作绝招
  20. 在太平洋人寿保险公司工作好不好?

热门文章

  1. 如何用成长型思维赋能敏捷
  2. golang web 服务器 request 与 response 处理
  3. step7设置pcpg_怎么安装STEP7编程软件及PG/PC接口设置
  4. MES生产调度管理系统源码 MES系统源码
  5. kaggle+feature engineering(知乎抄的
  6. android 备份游戏数据,用于Android游戏存档备份和存档还原的教程(图形中的详细信息)...
  7. 1635-超大型 LED 显示屏 ZCMU
  8. 什么是resultful 以及为什么要使用它
  9. 栅栏布局合并html,arcgis栅格数据合并 arcgis栅格图像拼接步骤
  10. 国企面试-260题-单选题 下列哪组成语反映了同一种人际关系: A 琴瑟和鸣 破镜重圆 B 负荆请罪 载舟覆舟 C 结草衔环 青梅竹马 D 相濡以沫 舐犊情深