- 目的
- 准备工作
- 爬取工作
- 获取网页全部内容
- 获取网页特定内容
- 标签类内容
- 表格类内容
本文通过python工具,对网页信息进行爬取下载
准备工作python工具下载安装:
库安装:
方法1:使用requests库(官方学习requests链接)
import requests
req = requests.get("目标网址")
print(req.text)
1、代码解析如下:
import request:导入request库
req = requests.get(“目标网址”):requests.get函数对目标网址进行处理,并把传回值赋值到变量req中,存储在变量req中有很多内容,其中网页内容会固定存在req.txt中
print(req.txt):打印出网页内容
2、应用案例
import requests
req = requests.get("https://rate.bot.com.tw/xrt?Lang=zh-TW")
print(req.text)
输入如下结果:
3、故障收集
故障1:报如下error
解决办法:将.py名字修改成不以requests命名。
1、核心代码解析如下
soup = BeautifulSoup(req.text,features="html.parser")
用html解析器(parser)来分析我们requests得到的html文字内容,soup就是我们解析出来的结果
company_item = soup.find("div",class_="detail_head")
find是查找,find_all查找全部。查找标记名是div并且class属性是detail_head的全部元素
dd = company_item.text.strip()
strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。在这里就是移除多余的尖括号的html数据
2、应用案例
示例1:
import requests #导入我们需要的requests功能模块
from bs4 import BeautifulSoup #使用BeautifulSoup这个功能模块来把充满尖括号的html数据变为更好用的格式,from bs4 import BeautifulSoup这个是说从bs4这个功能模块中导入BeautifulSoup,是的,因为bs4中包含了多个模块,BeautifulSoup只是其中一个
req = requests.get(url="https://www.crrcgo.cc/admin/crr_supplier.html?page=1") #使用get方式获取该网页的数据。实际上我们获取到的就是浏览器打开百度网址时候首页画面的数据信息
#print(req.text) #把我们获取数据的文字(text)内容输出(print)出来
req.encoding = "utf-8" #指定获取的网页内容,即第二句定义req的内容,用utf-8编码
html = req.text #指定获取的网页内容,即第二句定义req的内容,用text
soup = BeautifulSoup(req.text,features="html.parser") #用html解析器(parser)来分析我们requests得到的html文字内容,soup就是我们解析出来的结果
company_item = soup.find("div",class_="detail_head") #find是查找,find_all查找全部。查找标记名是div并且class属性是detail_head的全部元素
dd = company_item.text.strip() #strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。在这里就是移除多余的尖括号的html数据
print(dd)
示例2:
获取class_=的内容,操作如下:
3、不足
(1)当想获取的数据,网页F12选中后发现不是< p >的内容,代码执行失败
方法1:使用pandas库
import pandas
dfs = pandas.read_html("目标网址")
print(dfs[0])
1、代码解析如下:
dfs = pandas.read_html(“目标网址”):使用pandas.read_html函数对目标网址处理,把传回的结果保存在dfs变量,存储在dfs变量的内容有很多,但只要pandas有侦测到表格资料,就会放在第0号元素里面
print(dfs[0]):根据pandas的特性,使用print将dfs第0号元素打印出来
2、应用案例
import pandas
dfs = pandas.read_html("https://rate.bot.com.tw/xrt?Lang=zh-TW")
print(dfs[0])



