Scrapy爬虫中的小技巧有哪些

更新:2020/3/19 17:33:09 浏览:684次

  对于Python爬虫开发者来说,对Scrapy框架不会陌生,它是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。这里有一些Scrapy使用的小技巧,新手们不妨了解下:

  一、Scrapy的meta

  Scrapy的meta的作用是在执行scrapy.Request()函数时,把一些回调函数中需要的数据传进去,meta必须是一个字典,在下一个函数中可以使用response.meta访问。

  二、Python中的json解析

  爬虫离不了json的解析,很多传统网站中可能并不需要,但是很多新网站中都使用json进行数据传输,动态展现,所以json的解析对于爬虫是很重要的。

  json有三个常用的函数,分别是load(),loads(),dumps():

  1、json.loads():传入一个json字符串,返回一个字符串解析出来的list或dict;

  2、json.load():这看起来和json.loads()很像,但其实不一样,这个函数的作用是从文件中读取json并解析成dict或list;

  3、json.dumps():把一个dict或list转换成字符串,相当于json.loads()的逆向过程。

  三、字符串处理函数

  Scrapy中常见的处理函数有两种:replace()和strip():

  1、replace():字符串类型才用这个函数,传入两个参数,第一个是需要替换的字符串,第二个是替换成什么字符串,它会循环替换所有匹配到的字符串;

  2、strip():去除左右两边的空字符。

  四、正则表达式

  Python中的正则表达式有两种使用方式:一种是通过re模块的compile()函数生成一个正则表达式对象,然后用这个对象去匹配字符串,这种方式调用函数时不需要传入正则表达式,当一个正则表达式需要重复多次使用时建议使用此方式,它会先编译正则表达式,然后再去匹配,速度想对较快;另一种方式是直接使用re模块的各个函数,第一个参数需要传入正则表达式,常用的函数有四个,分别是re.compile()、re.match()、re.search()和re.findall()。

  1、re.compile():传入正则表达式字符串,推荐使用r''的这种原始字符串,不需要对一些特定字符转义,此函数返回一个正则表达式对象;

  2、re.match():从字符串的开始处匹配,匹配到返回match对象;

  3、re.search():从任意字符处开始匹配,匹配到就返回一个match对象;

  4、re.findall():从任意字符处开始匹配,匹配到所有的结果,返回一个list。

  蝶鸟IP平台专业提供优质HTTP/HTTPS/SOCKS5代理IP服务,欢迎广大顾客朋友前来垂询。

  客服QQ:2590525183。