总纲
程序入门两步骤,请求和响应,服务器响应之后,传回数据,然后我们对返回的数据进行解析成bs格式,然后进行提取。
最简单的请求格式如下:
import requests
url = ''
response = requests.get(url)
工具Network
Network
能够记录浏览器的所有请求
最常用的是:ALL(查看全部),XHR(仅查看XHR),Doc(Document,第0个请求一般在这里)
有时候也会看看:Img(仅查看图片)/Media(仅查看媒体文件)/Other(其他)
最后,JS和CSS,则是前端代码,负责发起请求和页面实现
Font是文字的字体;而理解WS和Manifest,需要网络编程的知识,
如下图network的属性
network里面的所有内容组成Elements ,Elements组成我们日常所见的万紫千红的网页
最常用的是XHR
和Doc
我们能在Doc
里找到一个网页的源代码,而在网页源代码里找不到的信息,
通常你都能在XHR
里找到。有它的存在,人们不必刷新/跳转网页,即可加载新的内容。在今天,已经学过“同步/异步”概念的你,也可以说XHR
帮我们实现了异步请求。
而数据究竟是藏身何处,方案如下:需要详细了解何时使用这个功能
总结:
使用Network里面的Doc和XHR ,我们能够查看到网页的源代码,从而在源代码里面提取到我们想要的信息
如果Doc里面没有我们想要的数据,就需要去到XHR里面去寻找
XHR的详细操作见第5章
解析与提取(一)即Doc
情况一:数据藏匿于网页源代码,我们自有一条完整的“爬虫四步”链
使用最重要的库叫BeautifulSoup,它能提供一套完整的数据解析、数据提取解决方案。
标准代码如下:(两种方法)
import requests
# 引用requests库
from bs4 import BeautifulSoup
# 引用BeautifulSoup库
res_foods = requests.get('http://www.xiachufang.com/explore/')
# 获取数据
bs_foods = BeautifulSoup(res_foods.text,'html.parser')
# 解析数据
tag_name = bs_foods.find_all('p',class_='name')
# 查找包含菜名和URL的<p>标签
tag_ingredients = bs_foods.find_all('p'