2018-06-06两个星期的爬虫所遇到的困难

2018-06-06  本文已影响0人  dongdonghao

使用XPath

      XPath,全称XML Path Language, 即XML路径语言,它是一门在XML文档中查找信息的语言。它最初是用来搜寻XML文档的,但是它同样适用于HTML文档中的搜索。

1,XPath概览

     XML提供了非常简洁明了的路径

总结

1. 如何创建一个scrapy爬虫

在命令行输入scrapy startproject XXX    XXX是工程名

然后cd进入子目录 输入scrapy genspider XX url   xxx是要创建的爬虫名,可用scrapy crawl XX运行已经写好的爬虫 url是指要爬取的第一个网页

前期准备好以后,就可以用pycharm导入爬虫,然后就可以写代码了。

接下来就是遇到的各种问题:

爬虫的第一步就是禁JS,看看要爬取的内容是动态的还是静态的,静态的非常容易,返回的response用xpath或者用re解析,动态的话就要看xhr或者js,

一般来说,很多动态网页返回来的是json,这时候要解析的话,第一步先import json,  然后是json.loads(response.body),我们可能会用到decode('gbk'), 因为编码形式不同,如果不解码,返回来的可能是乱码。返回来的json可能还有些杂质,我们可以用scrapy shell "url"来调试,然后view(response)来看看返回来的json需要去除什么东西,然后用strip()函数去除。

举个例子,start_urls=['https://dc.3.cn/category/get?&callback=getCategoryCallback']

可以用scrapy shell 'url' 来看下返回内容。

view(response)

True

然后在一个txt中打开了返回的json,

因为里面有getCategoryCallback( ),直接用json函数没法解析,所以得用strip("getCategoryCallback( )")去掉,这里介绍一个很好用的解析json的谷歌浏览器插件,json handle,层次特别清晰

正则表达式 查找数字 r'\d+.\d+\d+'

查找汉字的话

re.search(ur'[\u4e00-\u9fa5]+', text)

正则表达式前面加了两个前缀ur,其中r表示使用原始字符串,u表示是unicode字符串。

未完有时间接着写

零宽断言

上一篇 下一篇

猜你喜欢

热点阅读