使用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字符串。
未完有时间接着写
零宽断言
网友评论