简单爬虫学习

写在前面:快放假了,这两天心血来潮,自己也想学习一下爬数据,NLP里数据才是王道,所以自己也写了一个爬虫爬取21财经的某个频道的新闻数据,仅作为学习爬虫用。

1  爬虫的组成:解析主列表页面,解析详细页面,存储数据

2 使用requests获取页面,使用正则或者BeautifulSoup解析页面,都挺方便的。

3 存储数据采用MongoDB。

遇到的问题:

1 requests获取到页面后页面乱码,百度找到的方法将获取的html转化为原来网页的编码即可

html = requests.get(url,headers)
raw_data = urllib.request.urlopen(url).read()
charset = chardet.detect(raw_data)
encoding = charset['encoding']
html.encoding = encoding

2 解析子页面时一直获取不到子页面数据,通过打印捕获的异常发现传递的子页面的url包含了引号,导致连接不上子页面,一般解析子页面时需要strip一下前后空格,我用正则解析主页面竟然出现了引号。

3 一开始只使用了正则解析,但是有些嵌套的html结构和一些包含换行空格的代码,通过正则获取不到想要的内容,后来尝试使用BeautifulSoup,通过具体的id、class标签去获取,效果不错,所以最后正则和bs一起用的,ok,奥卡姆razer,简单有效就行。

代码:

猜你喜欢

转载自www.cnblogs.com/Revelation/p/12198673.html