雪球网股票用户评论爬虫

一、什么是爬虫?

网络爬虫,其实叫作网络数据采集更容易理解。
就是通过编程向网络服务器请求数据(HTML表单),然后解析HTML,提取出自己想要的数据。
归纳为四大步:

1.根据url获取HTML数据
2.解析HTML,获取目标信息
3.存储数据
4.重复第一步

二、HTML

什么是HTML?
超文本标记语言(英语:HyperTextMarkupLanguage,简称:HTML)是一种用于创建网页的标记语言,里面嵌入了文本、图像等数据,可以被浏览器读取,并渲染成我们看到的网页样子。
所以我们才会从先爬取HTML,再 解析数据,因为数据藏在HTML里
比如这就是一个简单的html程序

<!DOCTYPE html>
<html>
  <head>
    <title>This is a title</title>
  </head>
  <body>
    <p>Hello world!</p>
  </body>
</html>

三、爬虫基本原理

在编写python爬虫程序时,只需要做以下两件事:
①发送GET请求(模拟计算机对服务器发起Request请求),获取HTML
②解析HTML,获取数据
这两件事,python都有相应的库帮你去做,你只需要知道如何去用它们就可以了。

四、爬虫三大库

1.Request库

作用是请求网站获取网页数据

import requests
res = requests.get('http://www.baidu.com')
print(res)   # 返回200则请求网址成功,404或者400则失败
print(res.text)

显示的结果和F 12的一样

有时爬虫需要加入请求头来伪装成浏览器,以便更好地抓取数据。
在F 12里的network里headers中找到User-Agent进行复制
在这里插入图片描述

import requests
headers = {
   
       'User-Agent':' Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko))Chrome/87.0.4280.66 Safari/537.36'
}

res = requests.get('http://www.baidu.com')
print(res)   # 返回200则请求网址成功,404或者400则失败
print(res.text)

Requsets 库不仅有get()方法,还有post()等方法,用来提交表单来爬取需要登陆才能获取数据的网络。
如果遇到抛出异常,修改后爬虫程序还需要再重新运行,效率很低。这时可以使用try来避免异常

try:
    print(res.text)
except ConnectionError    #出现except后面的错误后执行下面聚聚
    print('拒绝连接')
2. BeautifulSoup库

通过BeautifulSoup库可以轻松解析Request库请求的页面,并把网页的源代码解析成Soup文档,以便过滤提取数据

import requests
from bs4 import BeautifulSoup
headers = {
   
       'User-Agent':' Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko))Chrome/87.0.4280.66 Safari/537.36'
}
res = requests.get('http://www.baidu.com')
soup = BeautifulSoup(res.text,'html.parser')   # 对返回的结果进行解析
print (soup.prettify())

其实输出的内容和request的一样,但它按照标准缩进格式的结构输出,为后续数据过滤提取做好准备。

解析Soup文档可以使用find()、find_all()和selector()定位需要的元素。
1.find_all()

soup.find_all( ‘div’,“item” ) ## 查找div标签,class=“item”
soup.find_all( ‘div’,class=“item” )

2.find()
与上者类似,只是find_all()返回的是文档中符合条件的所有tag,是一个集合(class ’ bs4.element.ReaultSet ’ )
而find()是返回一个Tag(class ’ bs4.element.Tag ’ )

五、正则表达式

正则表达式是一个特殊的符号系列,用于检查一个字符串是否与某种模式匹配。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值