抓取网页数据(python爬网页数据方便,python爬取数据到底有多方便 )
优采云 发布时间: 2021-10-13 15:19抓取网页数据(python爬网页数据方便,python爬取数据到底有多方便
)
据说python抓取网页数据方便,今天来试试,python抓取数据有多方便?
简介
爬取数据,基本上是通过网页的URL获取这个网页的源码,根据源码过滤出需要的信息
准备
IDE:PyCharm 库:请求、lxml
注意:requests:获取网页源码 lxml:获取网页源码中的指定数据
设置环境
这里的setup环境不是搭建python的开发环境。这里的设置环境是指我们用pycharm新建一个python项目,然后用requests和lxml新建一个项目:
依赖库导入
由于我们使用的是pycharm,所以导入这两个库会很简单。
import requests
此时,requests 会报红线。这时候我们将光标指向requests,按快捷键:alt+enter,pycharm会给出解决方案。这时候选择安装包请求,pycharm会自动安装好了,我们只需要稍等片刻就可以安装库了。 lxml的安装方法是一样的。
获取网页源代码
之前说过requests可以很方便我们获取网页的源码。对于网页,以我的博客地址为例:
获取源代码:
# 获取源码
html = requests.get("https://coder-lida.github.io/")
# 打印源码
print html.text
代码就这么简单,这个html.text就是这个网址的源码
完整代码:
import requests
import lxml
html = requests.get("https://coder-lida.github.io/")
print (html.text)
打印:
获取指定数据
现在我们有了网页的源代码,我们需要使用lxml过滤掉我们需要的信息。这里我以我的博客列表为例。可以通过F12找到原网页并查看XPath,如图
通过XPath的语法获取网页内容。
查看第一篇文章文章title
//*[@id="layout-cart"]/div[1]/a/@title
//定位根节点/往下查找提取的文本内容:/text()提取属性内容:/@xxxx
import requests
from lxml import etree
html = requests.get("https://coder-lida.github.io/")
#print (html.text)
etree_html = etree.HTML(html.text)
content = etree_html.xpath('//*[@id="layout-cart"]/div[1]/a/@title')
print(content)
查看所有文章标题
//*[@id="layout-cart"]/div/a/@title
代码:
import requests
from lxml import etree
html = requests.get("https://coder-lida.github.io/")
#print (html.text)
etree_html = etree.HTML(html.text)
content = etree_html.xpath('//*[@id="layout-cart"]/div/a/@title')
print(content)
输出:
[' springboot逆向工程 ', ' 自己实现一个简单版的HashMap ', ' 开发中常用的 个JavaScript 单行代码 ', ' shiro 加密登录 密码加盐处理 ', ' Spring Boot构建RESTful API与单元测试 ', ' 记一次jsoup的使用 ']