爬虫入门实战(标价400的单子-1)

2023-11-08 11:50

本文主要是介绍爬虫入门实战(标价400的单子-1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面

这里想做这个专栏很久了,不仅是想把自己在工作时接触到一些比较棘手的问题和解决方法记录下来,而且也想帮助初学者了解一个爬虫的完整流程。

我目前的想法是更新一个简单的表格爬虫(一个基本没有反扒手段的网站)来入门。然后搞个selinunm自动化爬一下淘宝的商品类目、价格等信息来帮助大家进阶爬虫之路。最后我会分享我的终极爬虫技巧,大巧不工

其实,我的爬虫技术也是业余的,野路子。写这些文章只能帮助初学者进行爬虫一个了解,能接一些小点的单子。但是真正要应聘爬虫工程师是远远不够的。后面有时间的话我也会进行学习爬虫(如selinum伪装成正常请求,安卓模拟器app爬虫)

爬虫概览

其实我们或多或少都是听说过爬虫这个概念,这个东西的技术栈其实也比较成熟了。

其实在我的理解中,爬虫嘛,就是给自己伪装一下,装成是正常的访问请求,然后获取到网站或者APP中的数据资源的一种技术手段。

当然目前大部分爬虫都是python写的,毕竟python丰富的第三方库资源还有语言优势摆在这里。所以,我们这里也是通过python进行爬虫的编写。

一、项目需求

一个香港的老板应该是,他给个网址

里面大概是这样的

点进去那个箭头的之后是个超链接,然后,要把这个信息爬下来。

需求挺明确的,而且这个网站,连一些基础的反爬手段都没有,非常适合用来入门实战。

二、分析网页

搞到所有律师的信息的流程清晰的分为两个步骤:1.搞到所有律师的个人介绍的超链接;2.然后再对所有链接进行访问。

可以看到哈,这个记录还是有点多的,11339条,30个记录一页。要全部拿下来不是一件简单的事,

1.找到所有页面的链接:

这个是第一页。

这个是第二页。

让我们来看看他的链接:

第一页:www.hklawsoc.org.hk/zh-HK/Serve…

第二页:www.hklawsoc.org.hk/zh-HK/Serve…

找到不同了嘛.第二页多出了一个字段:&pageIndex=2#tips 可以把这个数字换成1和3,试一下.

&pageIndex=1#tips

&pageIndex=3#tips

所以所有页面的规律就找到了,用来访问的链接如下:

 

python

复制代码

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,查看,操作如下:

  1. 点击F12,进入下面的界面

2. 点箭头指向的按钮

  1. 然后点击你想扒出超链接的元素

点击后:

这个超链接很显眼了吧。点进去,正好是我们想要的链接。

三、开始爬取

还记得我们开始说的嘛,爬虫是封装成正常的请求去访问页面然后下载我们想要的资源,对吧所以,这里细化为两个步骤请求页面资源和解析页面资源找到我们想要的数据**(这里我们想要的是律师个人页面的超链接)**

  • 这里先进行第一步:请求页面资源

爬虫的技术获取网页的手段最基础的就是python的requests方法了。我们这里用的也是这个方法。

requests的请求在这里也比较简单,就是简单的get请求,其实也有post的请求,网络上有很多资料,我这里就不赘述了。

简单的requests的get请求代码如下:

 

python

复制代码

import requests headers = {'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也很重要,具体步骤如下:

  1. 随便打开一个网页,例如打开我们这个页面,右键点击‘检查’或者按F12,出现下图页面。

  1. 点击network

  1. F5刷新

4. 在name框随便点一个选项,在右侧点击‘headers’选项,在最下方找到‘User-Agent:’,粘贴到自己代码即可。如下图

个人总结:

这里主要是介绍一个爬虫的基本流程,能够帮助我们爬下来我们想要的页面源码。当然光爬下来源码是远远不够的,还需要各种规则(lxml、beautifulsoup以及正则表达式)的解析才能获取到从整个源码中获取我们想要的数据。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、Python练习题

检查学习结果。

六、面试资料

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

 最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

这篇关于爬虫入门实战(标价400的单子-1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/369665

相关文章

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

Spring Boot3.0新特性全面解析与应用实战

《SpringBoot3.0新特性全面解析与应用实战》SpringBoot3.0作为Spring生态系统的一个重要里程碑,带来了众多令人兴奋的新特性和改进,本文将深入解析SpringBoot3.0的... 目录核心变化概览Java版本要求提升迁移至Jakarta EE重要新特性详解1. Native Ima

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

SpringBoot集成MyBatis实现SQL拦截器的实战指南

《SpringBoot集成MyBatis实现SQL拦截器的实战指南》这篇文章主要为大家详细介绍了SpringBoot集成MyBatis实现SQL拦截器的相关知识,文中的示例代码讲解详细,有需要的小伙伴... 目录一、为什么需要SQL拦截器?二、MyBATis拦截器基础2.1 核心接口:Interceptor

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二