用Python 写爬虫时应该注意哪些坑

2024-05-18 07:54

1. 用Python 写爬虫时应该注意哪些坑

1. 爬个别特定网站,不一定得用python写爬虫,多数情况wget一条命令多数网站就能爬的不错,真的玩到自己写爬虫了,最终遇到的无非是如何做大做壮,怎么做分布式爬虫。scrapy这种价值接近0,异步或者多线程搞抓取,选一个成熟的基于磁盘的队列库,kafka之类的,scrapy帮了啥?
2. http库众多,还有gevent库monkey patch以后coroutine的玩这一选择,规模千万的话urllib3很好。
3. 对付网站的诸如登录、ajax,这种不过是体力民工活,不展开了。
4. 速度很重要,放ec2或者国内的云上跑,很重要的指标是你每一亿网页爬下来成本多少,爬的时候比如4核一个虚拟机节点,你能inbound贷款用足100mbps吗。
5. beautifulsoup太慢,全网的爬,encoding的分析也要要快,c实现的chardet还行

最关键的,永远是爬下来以后的信息的提取、分析、使用,就是另外一个话题了。
1.学会使用chrome浏览器查看通信以及查看元素格式
2.增加User-Agent, 这是最简单的反爬措施了
3.写爬虫最好使用Ipython,在交互式的环境下,可以时刻了解自己问题具体出在哪里
4.使用requests
5.用get或者post下好html之后,要确认你需要的东西html里面有,而不是之后用ajax或者javascript加载的。
6.解析的话,BeautifulSoup不错。对于少数非常特殊的,可以考虑用re。
7,需要大量采集数据的话,学会使用框架,比如scrapy。
进阶:
加入网站需要模拟登陆,里面使用了很多ajax或者javascript,或者反爬虫厉害,用requests的session,注意F12查看到底发送了什么数据。
实在不会,就使用模拟浏览器吧,推荐selenium,虽然速度慢点,内存多点,但是真的很省力,而且基本查不出来。
最后,爬虫速度不要太快,加上time.sleep(1),尽量少用多线程,别人建站也不容易,(尤其是小站)你不给别人带来很大的麻烦,别人也就睁一只眼闭一只眼了,否则封IP不是好玩的。

有些页面喜欢使用redirect,然而requests的get和post方法中默认是直接跳转的!很可能你就带着错误的cookies和headers跳转了,所以务必将allow_redirects参数设为false

用Python 写爬虫时应该注意哪些坑

2. 本科计算机 毕 设 求助,PYTHON,爬虫,数据库,文本聚类,文本处理

可以加个好友吗,我也是计算机渣渣一名,本来我的题目只有爬虫和数据简单的分析还有可视化展示,可我导师很严格,给我加了数据库,文本聚类,jieba分词和情感分析还有一些具体分析的要求,现在的我就是当年的你,每天都郁郁沉沉,茶饭不思。你的问题怎么解决的?可以教教我吗?真的很想知道!

3. python 爬虫要不要用框架

由于项目需求收集并使用过一些爬虫相关库,做过一些对比分析。以下是我接触过的一些库:
Beautiful Soup。名气大,整合了一些常用爬虫需求。缺点:不能加载JS。
Scrapy。看起来很强大的爬虫框架,可以满足简单的页面爬取(比如可以明确获知url pattern的情况)。用这个框架可以轻松爬下来如亚马逊商品信息之类的数据。但是对于稍微复杂一点的页面,如weibo的页面信息,这个框架就满足不了需求了。
mechanize。优点:可以加载JS。缺点:文档严重缺失。不过通过官方的example以及人肉尝试的方法,还是勉强能用的。
selenium。这是一个调用浏览器的driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。
cola。一个分布式爬虫框架。项目整体设计有点糟,模块间耦合度较高,不过值得借鉴。
以下是我的一些实践经验:
对于简单的需求,比如有固定pattern的信息,怎么搞都是可以的。
对于较为复杂的需求,比如爬取动态页面、涉及状态转换、涉及反爬虫机制、涉及高并发,这种情况下是很难找到一个契合需求的库的,很多东西只能自己写。
至于题主提到的:
还有,采用现有的Python爬虫框架,相比与直接使用内置库,优势在哪?因为Python本身写爬虫已经很简单了。
third party library可以做到built-in library做不到或者做起来很困难的事情,仅此而已。还有就是,爬虫简不简单,完全取决于需求,跟Python是没什么关系的。

python 爬虫要不要用框架

4. 用python 只搞爬虫有没有职业前途

只搞爬虫如果意思是你的技术只停留在当前水平,不再学习新知识,不再进步的话,那么是没有前途的,总有一天会被时代淘汰.
但是
只搞爬虫,只要专研得够深,你的爬虫功能很强大,性能很高,扩展性很好等等,那么还是很有前途的
爬虫可以不至于爬数据,可以往大数据分析,数据展示,机器学习等方面发展,前途不可限量

5. 是不是Python会涉及到爬虫和数据分析?

学了Python基础之后,接下来应该做什么呢?
那就是用Python写写爬虫,用抓取到的数据再做数据分析。
这里有一份Python爬虫的视频资料:


还有Python数据分析的视频资料:

如果需要的话,点击这个链接即可免费领取:网页链接
祝你学有所成。

是不是Python会涉及到爬虫和数据分析?

6. 毕业设计,Python爬虫系统 目前只知道一点点皮毛。求思路, 爬去信息,然后做成系统,老师还要求?

明显串行比多线程的慢啊, 你的思路有一些坑
python的多线程由于GIL的存在, 不咋好用, 你还不如使用gevent做多路复用的
python串行的就是一个一个爬呗
首先手机1w个url, 对比两个爬虫的效率就可以
库一般而言, 写一个爬虫系统需要输入一堆种子, 这些种子是初始化链接, 你可以通过requests库和pyquery库进行解析, 按照特定的算法比如广度优先的方式再把这些链接对应的内容爬取出来,注意由于一个链接可能出现在多个网页中, 还需要在抓取之前采取排重操作, 这个你可以采用redis, 毕竟基于内存的比较快

7. 学会python可以做哪些兼职?

python是一个非常优秀的编程语言,这几年在国内热度也不错,在众多编程语言评测平台都将python放在第一位。其中在PYPL中,pyhon稳居第一,在IEEE中,python也是多年第一了!具体见图。


接下来回答你python就业以及兼职的情况:
从51job中我们输入“python”关键词,9月份上海地区就有8326条就业信息,其中不乏与开发、数据分析以及大数据等等岗位挂钩,就业情况较为理想。

再谈谈你比较关心的兼职:
作为一门核心的语言,很多中小企业的需求可能是比较短的,比如做个爬虫等等,介绍个比较靠谱的程序员兼职平台“程序员客栈”给你,你可以自行去找相关的兼职。其实除了就业、兼职,python完全可以成为自己创业的利器,祝工作愉快!

学会python可以做哪些兼职?

8. Python 学到什么程度可以找到工作

第一点:Python
因为面试的是Python爬虫岗位,面试官大多数会考察面试者的基础的Python知识,包括但不限于:
Python2.x与Python3.x的区别
Python的装饰器
Python的异步
Python的一些常用内置库,比如多线程之类的
第二点:数据结构与算法
数据结构与算法是对面试者尤其是校招生面试的一个很重要的点,当然小公司不会太在意这些,从目前的招聘情况来看对面试者的数据结构与算法的重视程度与企业的好坏成正比,那些从不问你数据结构的你就要当心他们是否把你当码农用的,当然以上情况不绝对,最终解释权归面试官所有。
第三点:Python爬虫
最重要也是最关键的一点当然是你的Python爬虫相关的知识与经验储备,这通常也是面试官考察的重点,包括但不限于:
你遇到过的反爬虫的策略有哪些?
你常用的反反爬虫的方案有哪些?
你用过多线程和异步吗?除此之外你还用过什么方法来提高爬虫效率?
有没有做过增量式抓取?
对Python爬虫框架是否有了解?
第四点:爬虫相关的项目经验
爬虫重在实践,除了理论知识之外,面试官也会十分注重爬虫相关的项目:
你做过哪些爬虫项目?如果有Github最好
你认为你做的最好的爬虫项目是哪个?其中解决了什么难题?有什么特别之处?
以上是我在面试过程中,会碰到的一些技术相关的问题的总结,当然面试中不光是技术这一点,但是对于做技术的,过了技术面基本上就是薪资问题了。