【前言】
Python学习交流群:834179111,群里有很多的学习资料。欢迎欢迎各位前来交流学习。
爬取前的准备:
json
Javascript 对象
用requests可获取网页信息
用BeautifulSoup可以将网页信息转换为可以操作的物块
用beautifulSoup中的select方法可以获取相对应的元素,并且获取的元素为list形式,可以用for循环将其逐个解析出来
获取html标签值后,可以用[‘href’]获取‘href’属性的值,如
获取新闻编号:
re正则表达式的使用:
使用for循环获取新闻的多页链接
获取新闻发布的时间:
获取的信息可能会包含我们不想要的成分,即会获取到如出版社的其他我们不想要的元素,可以用contents将里面的元素分离成list形式,用contents[0]即可获取相应元素
时间字符串转换
获取新闻内文:
检查其所属类后按照上面的 select 获取新闻内文,获取的内容为list形式,可用for循环将内容去除标签后加入到自己创建的的list中(如article = [])
*** 其中可以用 ‘ ’.join( article ) 将article列表中的每一项用换行符‘ ’分隔开;**
上面获取单篇新闻的代码可用一行完成:
获取评论数量:(在获取评论数量时会发现评论是用js的形式发送给浏览器的,所以要先把获取的内容转化为json格式读取python字典):
完整代码(以获取新浪新闻为例):
存储的excel文档如下:
问题:在jupyter notebook导入pandas时可能会出现导入错误
解决:不要用命令行打开jupyter notebook,直接找到软件打开或者在Anocanda Navigator中打开