问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

爬虫面对如此多重复的标签,应该怎么爬才能爬到自己

发布网友 发布时间:2022-04-20 15:05

我来回答

1个回答

热心网友 时间:2023-06-25 06:50

二、爬虫工程师需要掌握哪些技能?我见过这样的说法:“爬虫是低级、重复性很多的工作,没有发展前途”。这是误解。首先,对于程序员来说基本上不存在重复性的工作,任何重复劳动都可以通过程序自动解决。例如博主之前要抓十几个相似度很高但是html结构不太一样的网站,我就写了一个简单的代码生成器,从爬虫代码到单元测试代码都可以自动生成,只要对应html结构稍微修改一下就行了。所以我认为,重复性的劳动在编程方面来说基本上是不存在的,如果你认为自己做的工作是重复性的,说明你比较勤快,不愿意去偷懒。而我还认为,勤快的程序员不是好程序员。下面我根据自己这段时间的工作经历,讲一讲爬虫需要哪些相关的技能。1.基本的编码基础(至少一门编程语言)这个对于任何编程工作来说都是必须的。基础的数据结构你得会吧。数据名字和值得对应(字典),对一些url进行处理(列表)等等。事实上,掌握的越牢固越好,爬虫并不是一个简单的工作,也并不比其他工作对编程语言的要求更高。熟悉你用的编程语言,熟悉相关的框架和库永远是无害。我主要用Python,用Java写爬虫的也有,理论上讲任何语言都可以写爬虫的,不过最好选择一门相关的库多,开发迅速的语言。用C语言写肯定是自找苦吃了。2.任务队列当爬虫任务很大的时候,写一个程序跑下来是不合适的:如果中间遇到错误停掉,重头再来?这不科学我怎么知道程序在哪里失败了?任务和任务之间不应该相互影响如果我有两台机器怎么分工?所以我们需要一种任务队列,它的作用是:讲计划抓取的网页都放到任务队列里面去。然后worker从队列中拿出来一个一个执行,如果一个失败,记录一下,然后执行下一个。这样,worker就可以一个接一个地执行下去。也增加了扩展性,几亿个任务放在队列里也没问题,有需要可以增加worker,就像多一双亏筷子吃饭一样。常用的任务队列有kafka,beanstalkd,celery等。3.数据库这个不用讲了,数据保存肯定要会数据库的。不过有时候一些小数据也可以保存成json或者csv等。我有时想抓一些图片就直接按照文件夹保存文件。推荐使用NoSQL的数据库,比如mongodb,因为爬虫抓到的数据一般是都字段-值得对应,有些字段有的网站有有的网站没有,mongo在这方面比较灵活,况且爬虫爬到的数据关系非常非常弱,很少会用到表与表的关系。4.HTTP知识HTTP知识是必备技能。因为要爬的是网页,所以必须要了解网页啊。首先html文档的解析方法要懂,比如子节点父节点,属性这些。我们看到的网页是五彩斑斓的,只不过是被浏览器处理了而已,原始的网页是由很多标签组成的。处理最好使用html的解析器,如果自己用正则匹配的话坑会很多。我个人非常喜欢xpath,跨语言,表达比价好,但是也有缺点,正则、逻辑判断有点别扭。HTTP协议要理解。HTTP协议本身是无状态的,那么“登录”是怎么实现的?这就要求去了解一下session和cookies了。GET方法和POST方法的区别(事实上除了字面意思不一样没有任何区别)。浏览器要熟练。爬虫的过程其实是模拟人类去浏览器数据的过程。所以浏览器是怎么访问一个网站的,你要学会去观察,怎么观察呢?Developer Tools!Chrome的Developer Tools提供了访问网站的一切信息。从traffic可以看到所有发出去的请求。copy as curl功能可以给你生成和浏览器请求完全一致的curl请求!我写一个爬虫的一般流程是这样的,先用浏览器访问,然后copy as curl看看有哪些header,cookies,然后用代码模拟出来这个请求,最后处理请求的结果保存下来。5.运维这个话题要说的有很多,实际工作中运维和开发的时间差不多甚至更多一些。维护已经在工作的爬虫是一个繁重的工作。随着工作时间增加,一般我们都会学着让写出来的爬虫更好维护一些。比如爬虫的日志系统,数据量的统计等。将爬虫工程师和运维分开也不太合理,因为如果一个爬虫不工作了,那原因可能是要抓的网页更新了结构,也有可能出现在系统上,也有可能是当初开发爬虫的时候没发现反扒策略,上线之后出问题了,也可能是对方网站发现了你是爬虫把你*了,所以一般来说开发爬虫要兼顾运维。所以爬虫的运维我可以提供下面几个思路:首先,从数据增量监控。定向爬虫(指的是只针对一个网站的爬虫)比较容易,一段时间之后对一些网站的数据增量会有一个大体的了解。经常看看这些数据的增加趋势是否是正常就可以了(Grafana)。非定向爬虫的数据增量不是很稳定,一般看机器的网络状况,网站的更新情况等(这方面我的经验不多)。然后看爬虫执行的成功情况。在上面提到了用任务队列控制爬虫工作,这样解耦可以带来很多好处,其中一个就是可以就是可以对一次爬虫执行进行日志。可以在每次爬虫任务执行的时候,将执行的时间、状态、目标url、异常等放入一个日志系统(比如kibana),然后通过一个可视化的手段可以清晰地看到爬虫的失败率。爬虫抛出的Exception。几乎所有的项目都会用到错误日志收集(Sentry),这里需要注意的一点是,忽略正常的异常(比如Connection错误,锁冲突等),否则的话你会被这些错误淹没。
爬虫如何爬取p标签内容

提取首个符合要求的数据。爬虫提取首个符合要求的数据爬取p标签内容,网络爬虫(webcrawler简称爬虫)就是按照一定规则从互联网上抓取信息的程序。

如何解决搜索引擎爬虫重复的抓取问题?

抓取频率过大可以在站长平台调整抓取频率,如果是同一链接段时间过大的抓取,可以调整链接布局,适当采用nofollow标签进行引导。

...标签下的多个并列的li标签中的内容,xpath应该怎么写?

//div[@class="list-wrap"]//li/text()然后用循环,不然所有内容会混在一起。

毕业生必看Python爬虫上手技巧

4、伪装成浏览器 某些网站反感爬虫的到访,于是对爬虫一律拒绝请求。所以用 urllib 2直接访问网站经常会出现HTTP Error 403:Forbidden的情况。对有些header要特别留意, Server端会针对这些header 做检查:1.User-Agent有些Server或Proxy会检查该值, 用来判 断是否是浏览器发起的Request。2.Content-Type...

什么是爬虫和爬虫的基本流程

通常爬虫是从某个网站的某个页面开始,爬取这个页面的内容,找到网页中的其他链接地址,然后从这个地址爬到下一个页面,这样一直不停的爬下去,进去批量的抓取信息。那么,我们可以看出网络爬虫就是一个不停爬取网页抓取信息的程序。爬虫的基本流程:1.发起请求: 通过HTTP库向目标站点发起请求,即发送一...

【教你写爬虫】用Java爬虫爬取百度搜索结果!可爬10w+条!

爬虫的核心步骤包括:1)初始化浏览器并打开百度搜索页面;2)模拟用户输入搜索关键词并点击搜索;3)使用代码解析页面,获取每个搜索结果的详细信息;4)重复此过程,处理多个关键词和额外的逻辑,如随机等待、数据保存等。通过这样的通用方法,我们实现了高效的数据抓取。总结来说,爬虫的核心就是模仿人类...

爬虫必备技能xpath的用法和实战

在爬取盗墓笔记时,目标地址为http://seputu.com/,关键步骤包括分析网页结构,提取标题和章节链接,再通过循环li标签获取小说内容。以下是一个实际的爬虫代码片段:最后,XPath与CSS选择器虽然都是解析库,但各有特点。XPath更适用于复杂结构的文档,而CSS更直观。通过不断实践,熟练掌握XPath,你将能更...

python爬虫怎么爬取父标签里子标签的内容

handle_starttag每遇见一个以"<"开始的tag回调一次,handle_endtag每遇见一个"</"标识的结束时回调一次,你的text3和text5位于结束标记之后,因此要自己手动用flag标记下,然后在handle_data里处理对应的数据!

Python实用技术——爬虫(一):爬虫基础

3,爬取之后如何使用 二,HTTP协议 1,万维网 2,协议:三,HTTP知识 四,HTTP请求方法:五,HTTP的响应 六,HTTP的响应状态码 八,HTTPS协议 九,初始HTML文档 十,HTML的标签 学完Python的入门以后,我们便开始深入的学习如何更好的玩Python,寓教于乐。在学习的过程中玩,听人家说,爬虫最容易让...

自我发掘爬虫实战1:宅男女神网妹子图片批量抓取,分类保存到本地和Mongo...

初心与目标 身为金融学大三的编程新手,凭借@静觅老师的爬虫课程,我怀揣梦想,立志在学期末前完成一个综合项目:从爬取、分析到可视化,实现数据的全面掌握。所需工具和资源 环境配置:Windows 8,Python 3.5,使用requests、re、os、pymongo、BeautifulSoup和time库,IDE是PyCharm。参考学习:Python...

怎么没有重复所有项目标签 微信标签重复的人 重复项目标签 2007版excel重复项目标签 2003版excel重复项目标签 excel数据透视表行标签重复 excel行标签怎么设置 透视表重复项目标签 数据透视表行标签重复不合并
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么是~直接行销(直接营销) 直接营销方式有哪些 现在基金定投沪深300合适么?麻烦推荐一只沪深300的指数基 在一支试管里放三只火柴,火柴头向下,用橡皮塞轻轻塞住 电脑主机总是黑屏,要重新开才可以,重开之后总是出现写着DSUB的小框框... 悍马路虎到底哪个才是越野之王? 黄山限流是什么意思? 以"我和祖国"为话题的作文300---400字左右 要自己写的 写一篇作文<<歌颂祖国,热爱祖国>>怎么写? 华硕X42JZ 笔记本运行游戏赤壁无法更新? kibana配置 Configure an index pattern 其中Time-... 怎么给kibana加上权限 安卓手机用久了卡怎么办 手机卡原因有三大类 糯米饭怎么蒸才好吃, 湖南糯米饭怎么做? 米饭里加糯米一起煮可以吗?有什么需要注意的? 糯米饭和米饭的区别 电饭锅煮糯米饭的做法窍门 湖南糯米饭怎么做呢? 煮饭用的糯米和大米有啥区别?怎样辨别? 如何用电饭煲蒸出美味的糯米饭?具体步骤是怎样的? 电饭锅煮糯米饭的做法 怎么做糯米饭呢? 糯米煮饭怎么做不夹生 过年糯米饭的做法 在家自制糯米饭,怎么样才能做得更加香甜? 蒸糯米饭米要泡多久? 糯米饭的做法 电饭锅糯米饭的做法是什么? 怎么煮糯米饭好吃简单 如何支持携带身份信息的请求到Elasticsearch服务器 kibana的配置文件用配置吗 安卓手机为什么越用越卡 怎么解决 安卓手机为什么用久了会卡机?如何解决 微信重新载入数据功能会发生什么 手机微信数据丢失怎么恢复 为什么微信一直显示载入数据中 微信数据加载失败登不上怎么办 重新登陆微信一直在载入数据 进不去 重新下载也不... 我手机微信为什么载入数据时,一到百分之五十就不... 我的微信一直登录不了。一直显示加载数据怎么办 微信载入数据很慢,那是什么原因? 微信设置重新载入数据是什么意思 元宵节怎么过? 你是怎样过元宵节的? 古代的元宵节怎么过 从古至今我们是怎样过元宵节的? 十里不同风,百里不同俗!元宵节你打算怎么过? 元宵节你和谁一起过节?怎么过? 现代人怎么过元宵