爬虫入门实战(如何分析页面和构建requests请求)
其实我们或多或少都是听说过爬虫这个概念,这个东西的技术栈其实也比较成熟了。
其实在我的理解中,爬虫嘛,就是给自己伪装一下,装成是正常的访问请求,然后获取到网站或者APP中的数据资源的一种技术手段。
当然目前大部分爬虫都是python写的,毕竟python丰富的第三方库资源还有语言优势摆在这里。所以,这里也是通过python进行爬虫的编写。
一、项目需求
一个香港的老板应该是,他给个网址
里面大概是这样的
点进去那个箭头的之后是个超链接,然后,要把这个信息爬下来。
需求挺明确的,而且这个网站,连一些基础的反爬手段都没有。
二、分析网页
搞到所有律师的信息的流程清晰的分为两个步骤:1.搞到所有律师的个人介绍的超链接;2.然后再对所有链接进行访问。
可以看到哈,这个记录还是有点多的,11339条,30个记录一页。要全部拿下来不是一件简单的事,
1.找到所有页面的链接:
这个是第一页。
这个是第二页。
让我们来看看他的链接:
第一页:https://www.hklawsoc.org.hk/zh-HK/Serve-the-Public/The-Law-List/Members-with-Practising-Certificate?name=&jur=&sort=1
第二页:https://www.hklawsoc.org.hk/zh-HK/Serve-the-Public/The-Law-List/Members-with-Practising-Certificate?name=&jur=&sort=1&pageIndex=2#tips
找到不同了嘛.第二页多出了一个字段:&pageIndex=2#tips 可以把这个数字换成1和3,试一下.
&pageIndex=1#tips
&pageIndex=3#tips
所以所有页面的规律就找到了,用来访问的链接如下:
for i in range(1, 11339//30): print(i/(11339//30),end=' ') url = "https://www.hklawsoc.org.hk/zh-HK/Serve-the-Public/The-Law-List/Members-with-Practising-Certificate?name=&jur=&sort=1&pageIndex="+str(i)+"#tips"
这个规律真的很简单,所以就用来爬虫的入门了.
2.找到所有律师的个人页面链接:
这个就是一个页面分析的任务了。
还记得我们刚才是点这个链接访问的这个律师个人信息界面吧,这里面必然有着个人界面的超链接,我们需要的就是把它扒出来出来就可以了。下面我们在这个页面,按F12,查看,操作如下:
点击F12,进入下面的界面
2. 点箭头指向的按钮
然后点击你想扒出超链接的元素
点击后:
这个超链接很显眼了吧。点进去,正好是我们想要的链接。
三、开始爬取
还记得我们开始说的嘛,爬虫是封装成正常的请求去访问页面然后下载我们想要的资源,对吧所以,这里细化为两个步骤:
第一步:请求页面资源
爬虫的技术获取网页的手段最基础的就是python的requests方法了。我们这里用的也是这个方法。
代码如下:
import requestsheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'}
for i in range(1, 11339//30): print(i/(11339//30),end=' ') url = "https://www.hklawsoc.org.hk/zh-HK/Serve-the-Public/The-Law-List/Members-with-Practising-Certificate?name=&jur=&sort=1&pageIndex="+str(i)+"#tips" response = requests.get(url, headers=headers) html = response.content.decode('utf-8', 'ignore')
这里response就是我们请求下来的页面资源了,经过源码解析获取到了html
源码。
当然,你可能会有疑问这个headers从哪来的,哪里规定的。
每个浏览器都有自己的headers,因为headers要模仿你自己的浏览器向网页发送信息。如果使用Python进行爬取页面时,使用了别人的headers可能会导致爬取不到任何数据(因为代码在你自己的电脑运行,所以无法模拟别人的浏览器)
当然其实用别人也可以,有的网站他可能安全做的没有那么好,就都还可以正常访问。当然,所以如何查找自己headers也很重要,具体步骤如下:
随便打开一个网页,例如打开我们这个页面,右键点击‘检查’或者按F12,出现下图页面。
点击network
F5刷新
4. 在name框随便点一个选项,在右侧点击‘headers’选项,在最下方找到‘User-Agent:’,粘贴到自己代码即可。如下图
第二步:解析页面资源
本文由 mdnice 多平台发布
爬虫入门实战(如何分析页面和构建requests请求)相关推荐
- 怎么加载csv_python爬虫入门实战(四)!爬取动态加载的页面
今天的主题是爬取动态网页的经验分享,以cocos论坛为例子进行分享.(官方不会打我吧 ) 配置环境 为什么选择cocos论坛呢?因为自己在浏览论坛时,发现标题内容会随着滚动条的位置而动态添加. 环境: ...
- python爬虫入门实战---------一周天气预报爬取_Python爬虫入门实战--------一周天气预报爬取【转载】【没有分析...
Python爬虫入门实战--------一周天气预报爬取[转载][没有分析 Python爬虫入门实战--------一周天气预报爬取[转载][没有分析] 来源:https://blog.csdn.ne ...
- python爬虫动态加载_python爬虫入门实战(四)!爬取动态加载的页面!
今天的主题是爬取动态网页的经验分享,以cocos论坛为例子进行分享.(官方不会打我吧 ) 配置环境 为什么选择cocos论坛呢?因为自己在浏览论坛时,发现标题内容会随着滚动条的位置而动态添加. 环境: ...
- layui 如何动态加载局部页面_python爬虫入门实战(四)!爬取动态加载的页面!
今天的主题是爬取动态网页的经验分享,以cocos论坛为例子进行分享.(官方不会打我吧 ) 配置环境 为什么选择cocos论坛呢?因为自己在浏览论坛时,发现标题内容会随着滚动条的位置而动态添加. 环境: ...
- 爬虫入门实战第一站——梨视频视频爬取
爬虫入门实战第一站--梨视频视频爬取 简介 博主最近重新开始了解爬虫,想以文字方式记录自己学习和操作的过程.本篇文章主要是使用爬虫爬取梨视频网站中的视频并下载到本地,同时将视频简介和视频网站保存在ex ...
- python3 [爬虫入门实战]爬虫之scrapy安装与配置教程
python3 [爬虫入门实战]爬虫之scrapy安装与配置教程 标签: python爬虫scrapy 2017-07-08 15:38 77人阅读 评论(0) 收藏 举报 分类: python3爬虫 ...
- python xpath入门_python爬虫入门实战(三)!xpath 和 csv!
最近有小伙伴说正则表达式学不懂?那有什么替代方案呢?一起往下看吧! 在前两篇文章我们已经学了一些基本技巧.但是之前都是用正则表达式来解析内容的,可能有小伙伴对正则表达式不理解,于是乎,我找到一个相对好 ...
- Python爬虫入门实战之猫眼电影数据抓取(实战篇)
项目实战 静态网页实战 本节我们将为大家展现一个完整爬虫的大致过程,此次项目内容为提取猫眼电影TOP100榜中的所有电影信息并存储至CSV文件中,其首页地址为http://maoyan.com/boa ...
- Python爬虫入门实战之猫眼电影数据抓取(理论篇)
前言 本文可能篇幅较长,但是绝对干货满满,提供了大量的学习资源和途径.达到让读者独立自主的编写基础网络爬虫的目标,这也是本文的主旨,输出有价值能够真正帮助到读者的知识,即授人以鱼不如授人以渔,让我们直 ...
最新文章
- 广搜破解密码(HDU1195)
- 使用C#的HttpWebRequest模拟登陆网站(续)
- [导入]关于复制目录架构
- linux配置redis服务,Linux下安装Redis并设置相关服务
- Git 2.19 对Diff、Branch和Grep等做了改进
- c语言结构体语法分析,C语言结构体struct的语法解析
- 搬砖的也能学Python----if - elif 语句
- linux下source filename,./filename,. filename,......
- LINUX 命令手册
- 王思聪吃热狗火了,程序员开发各种恶搞小程序!王校长:我不要脸的啊
- log函数 oracle power_Oracle 函数大全详细介绍
- C#实现封装SPC过程能力工具类ProcessCababilityHelper
- 在计算机中正确的邮件写信格式,电子邮件格式怎么写
- ultravnc 反向连接_C程序以反向显示链接列表
- 亚马逊云科技入门资源中心,从0到1轻松上云
- 关于Filename too long解决方法
- Linux之jkd、tomcat、mysql安装
- 侯捷先生的Design Patterns高级课程
- c++学习笔记-提高编程-模板(哔站-黑马程序员c++教学视频)
- 东莞厚街工业机器人展会_东莞厚街国际机械展暨工业自动化工业机器人展览会...