美文网首页
2018-06-06两个星期的爬虫所遇到的困难

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

作者: dongdonghao | 来源:发表于2018-06-06 10:52 被阅读0次

    使用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字符串。

    未完有时间接着写

    零宽断言

    相关文章

      网友评论

          本文标题:2018-06-06两个星期的爬虫所遇到的困难

          本文链接:https://www.haomeiwen.com/subject/crscsftx.html