【项目实训】各种反爬策略及爬虫困难点总结

在这里,我总结了本次项目的数据收集过程中遇到的反爬虫策略以及一些爬虫过程中容易出现问题的地方。

user-agent

简单的设置user-agent头部为浏览器即可:
在这里插入图片描述

爬取标签中带href属性的网页

对于显示岗位列表的页面,通常检查其源代码就会发现,相应的标签处存在一个a标签,其中存在href属性值:
在这里插入图片描述
于是可以选择,爬取出该网页中的所有的href属性,再依次对href属性中的所有的网址进行爬取,

current_job_links=browser.find_elements(by=By.XPATH,value='//li[@class="border-top"]//a[@target="_blank"]')
for link in current_job_links:
    job_path = link.get_attribute("href")
    job_url = urljoin(self.base_url, job_path)
    job_links.append(job_url)

爬取使用js跳转的网页,进行选型卡管理

现在好多都是不存在href,而是使用javascript进行跳转,也就是点击卡片之后会新开一个选项卡,因此这里要使用selenium的选项卡管理来实现browser的url变化,从而获得新打开页面的url(如果不切换选项卡,即使模拟单击了卡片,也不能对打开的页面进行爬虫)
重点在于一定要记得切换选项卡!!

for card_element in card_elements:
    # 单击卡片元素
    browser.execute_script("arguments[0].click();",card_element)
    # 等待新页面加载完成
    wait.until(EC.number_of_windows_to_be(2))
    # 切换到新的窗口
    browser.switch_to.window(browser.window_handles[1])
    # 获取新页面的URL
    current_url2 = browser.current_url
    current_url_list.append(current_url2)
    browser.close()

分页爬取

url变化实现换页

大部分网页都是通过url的变化实现翻页的:
在这里插入图片描述
因此只需要修改相应网址的pageNo即可,

if self.page < 100:
   self.page += 1
   # 换url
   url = 'https://zhaopin.meituan.com/web/position?hiringType=2_6&pageNo=' +str(self.page)
   #再次调用爬虫
   yield scrapy.Request(url=url, callback=self.parse, dont_filter=True)
   time.sleep(3)  # 设置3秒间隔

换页url不变

使用selenium模拟浏览器点击下一页按钮。所以需要在网页中定位到”下一页“按钮的位置

next_button = browser.find_element(by=By.XPATH,value='//[@id="target_list"]/div/div[2]/div[3]/button[2]')
if not next_button.is_enabled():
	break
browser.execute_script("arguments[0].click();", next_button)

同时注意判断停止条件,当按钮不可用时表示到达最后

登录问题

在爬取京东招聘时需要首先进行登录
使用如下代码实现模拟登陆:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/749179.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学习提示词工程

去年 11 月 8 日&#xff0c;新加坡政府科技局&#xff08;GovTech&#xff09;组织举办了首届 GPT-4 提示工程&#xff08;Prompt Engineering&#xff09;竞赛。数据科学家 Sheila Teo 最终夺冠&#xff0c;成为最终的提示女王&#xff08;Prompt Queen&#xff09;。之后&am…

苹果解压压缩包的软件 苹果如何解压压缩包

大多数苹果新用户遇到过压缩包无法解压的问题&#xff0c;与Windows丰富的解压软件相比&#xff0c;苹果电脑的解压软件虽然数量众多&#xff0c;但是好用的却甚少。小编今天为大家推荐几款苹果解压压缩包的软件&#xff0c;并详细介绍苹果如何解压压缩包的。 一、苹果解压压缩…

https网站安全证书的作用与申请办法

HTTPS网站安全证书&#xff0c;正式名称为超文本传输安全协议证书&#xff0c;是通过SSL/TLS加密协议&#xff0c;保障互联网用户与网站间数据交换的安全性的关键技术。 一&#xff1a;HTTPS网站安全证书的作用 1 消除不安全提示&#xff1a;未使用https协议的网站&#xff0c…

项目如何整合sentinel

1、添加依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifact…

相机系列——从相机畸变到托勒密地图

by 木一 标签&#xff1a;#相机畸变 #畸变纠正 #鱼眼相机 #折射定律 #托勒密地图 引言 前文[1][2]我们介绍了针孔相机模型&#xff0c;以及针孔相机模型的相机标定过程&#xff0c;但针孔相机模型是对相机成像最简单的描述&#xff0c;实际的相机成像过程要远复杂很多。 首先…

pytest-yaml-sanmu(五):跳过执行和预期失败

除了手动注册标记之外&#xff0c;pytest 还内置了一些标记可直接使用&#xff0c;每种内置标记都会用例带来不同的特殊效果&#xff0c;本文先介绍 3 种。 1. skip skip 标记通常用于忽略暂时无法执行&#xff0c;或不需要执行的用例。 pytest 在执行用例时&#xff0c;如果…

医药研发项目管理系统:适合CRO/CDMO企业使用的项目管理系统有哪些?

近日&#xff0c;北京民康百草医药科技有限公司&#xff08;以下简称“民康百草”&#xff09;与北京瑞杰智能科技有限公司&#xff08;以下简称“瑞杰科技”&#xff09;宣布达成战略合作&#xff0c;双方将共同打造一套符合民康百草企业特色的研发项目管理系统。该系统将基于…

ChatGPT自媒体创作秘籍:高效生成优质文章和视频

在这个信息爆炸的时代&#xff0c;自媒体已经成为人们获取信息、表达观点和分享生活的重要途径。而作为自媒体创作者&#xff0c;如何高效地生成优质内容&#xff0c;吸引更多的关注和互动&#xff0c;是每一个创作者都在思考的问题。今天&#xff0c;我将为大家分享利用ChatGP…

Linux CentOS Suhosin禁用php5.6版本eval函数详细图文教程

方法一&#xff1a;PHP_diseval_extension禁用 Linux CentOS 禁用php的eval函数详细图文教程_centos php 禁用 eval-CSDN博客 这个方法make报错&#xff0c;懒得费时间处理&#xff0c;直接用第二种 方法二&#xff1a;suhosin禁用 服务器只装了一个PHP5.6版本&#xff0c;一…

PLM系统选购指南:哪款品牌最适合你?

在选购PLM&#xff08;Product Lifecycle Management&#xff09;系统时&#xff0c;选择最适合自己企业的品牌至关重要。以下是一份清晰的PLM系统选购指南&#xff0c;帮助您根据企业的具体需求选择最合适的品牌&#xff1a; 1、明确企业需求&#xff1a; 首先&#xff0c;明…

【面试分享】嵌入式面试题常考难点之关于单链表的增删改查

文章目录 【面试分享】嵌入式面试题常考难点之关于单链表的增删改查一、单链表结点定义二、增&#xff08;Create&#xff09;——插入结点1. 于链表头部插入结点&#xff08;头插法&#xff09;2. 于链表尾部插入结点&#xff08;尾插法&#xff09;3. 于链表中间插入结点3-1.…

一步步带你解锁Stable Diffusion:老外都眼馋的 SD 中文提示词插件分享

大家好我是极客菌&#xff01;今天我们继续来分享一个外国人都眼馋的 SD 中文提示词插件。 那我们废话不多说&#xff0c;直接开整。 SD 的插件安装&#xff0c;小伙伴们应该都会了吧&#xff0c;我这里再简单讲下哦&#xff0c;到「扩展」中的「可下载」中点击「加载扩展列表…

图像、色彩波和抗混叠

阮一峰的博文图像与滤波中分析了图像和波的关系&#xff0c;主要结论如下&#xff1a; 图像本质上就是各种色彩波的叠加。图像就是色彩的波动&#xff1a;波动大&#xff0c;就是色彩急剧变化&#xff1b;波动小&#xff0c;就是色彩平滑过渡。色彩剧烈变化的地方&#xff0c;…

车载系统类 UI 风格品质非凡

车载系统类 UI 风格品质非凡

桌面上的记事软件是什么 大家都在用什么记事软件

你是否经常因为琐事繁多而感到焦虑&#xff1f;是否曾在忙碌的工作中遗漏了重要的事项&#xff1f; 作为一名文字工作者&#xff0c;我深知记事的重要性。在繁杂的工作和生活中&#xff0c;我们需要的不仅仅是一个简单的记事本&#xff0c;而是一个能够帮助我们高效管理时间、…

Spring Boot如何集成Spring Data JPA?

&#x1f345; 作者简介&#xff1a;哪吒&#xff0c;CSDN2021博客之星亚军&#x1f3c6;、新星计划导师✌、博客专家&#x1f4aa; &#x1f345; 哪吒多年工作总结&#xff1a;Java学习路线总结&#xff0c;搬砖工逆袭Java架构师 &#x1f345; 技术交流&#xff1a;定期更新…

Http客户端-Feign 学习笔记

作者介绍&#xff1a;计算机专业研究生&#xff0c;现企业打工人&#xff0c;从事Java全栈开发 主要内容&#xff1a;技术学习笔记、Java实战项目、项目问题解决记录、AI、简历模板、简历指导、技术交流、论文交流&#xff08;SCI论文两篇&#xff09; 上点关注下点赞 生活越过…

Embedding的概念和展开

前言 本章&#xff0c;我们介绍一个非常细的细节技术。让我们微调大模型的一些特性和能力。 在大模型的AI套路演化过程中&#xff0c;其实经历了太多的技术革新和方式变化&#xff0c;Embedding其实也可能是其中一个高速湮灭的技术点之一。 对比LoRA现在大红大紫&#xff0c…

深度学习 - Transformer 组成详解

整体结构 1. 嵌入层&#xff08;Embedding Layer&#xff09; 生活中的例子&#xff1a;字典查找 想象你在读一本书&#xff0c;你不认识某个单词&#xff0c;于是你查阅字典。字典为每个单词提供了一个解释&#xff0c;帮助你理解这个单词的意思。嵌入层就像这个字典&#xf…

初识 Embedding,为何大家都基于它搭建私人智能客服?

随着 AI 技术的发展&#xff0c;大家在日常使用过程中经常会碰到一些目前 GPT4 也无法解决的问题&#xff1a; 无法获取个人私有数据信息&#xff0c;进行智能问答无法获取最新信息&#xff0c;LLM 模型训练都是都是有截止日期的无法定制化私有的专属模型&#xff0c;从而在某…