欢迎来到Introzo百科
Introzo百科
2023年数据采集与融合技术实践作业1
作业①:
需求:使用requests和BeautifulSoup库方法从给定的URL(http://www.introzo.com/rankings/bcur/2020)爬取数据,并将爬取到的大学排名信息打印在屏幕上。
输出信息:
排名 学校名称 省市 学校类型 总分
1 清华大学 北京综合852.5
导入bs4.element
从 bs4 导入 BeautifulSoup
导入 urllib.request
#从网站获取信息
def getHTMLText(url):
尝试:
请求 = urllib.request.Request(url)
数据 = urllib.request.urlopen(req)
数据 = www.introzo.com().decode()
返回数据
除了异常错误:
打印(错误)
#对html中的内容进行处理并整合
def fillList(列表,html):
汤 = BeautifulSoup(html,"html.parser")
对于 soup.find('tbody').children 中的 tr:
if isinstance(tr,bs4.element.Tag):
a = tr('a')
tds = tr('td')
list.append([tds[0].text.strip(),a[0].string.strip()
,tds[2].text.strip(),tds[3].text.strip()
,tds[4].text.strip()])
#输出学校排名
def printList(list1,num):tplt = "{0: ^10}\t{1: ^10}\t{2: ^12}{3: ^10}\t{4: ^10}"
print(tplt.format("排名","学校名称","省市","学校类型","总分"))
对于范围内的 i(num):
u = 列表 1[i]
打印(tplt.format(u [0],u [1],u [2],u [3],u [4]))
print("上面共有记录" + str(num) + "Bar.")
元素=[]
url = "https://www.introzo.com/rankings/bcur/2020"#网站信息
html = getHTMLText(网址)
填充列表(元素,html)
打印列表(元素,30)
效果如下
经验
通过这次实验,我学习了request和BeautifulSoup库中比较简单的知识,学会了find、BeautifulSoup、request等函数的使用,让我受益匪浅。
作业②:
需求:使用requests和re库方法,针对某商城(自己选择的)设计一个商品比价定向爬虫,爬取该商城,搜索关键词“书包”的页面数据,爬取商品名称和价格。
输出信息:
序列号 价格 产品名称
1 65.00 xxx
来自 selenium 导入 webdriver
导入时间
进口重新
所有名称 = []
所有价格 = []
browser = webdriver.Edge() # 创建驱动程序对象(使用edge浏览器打开)browser.get('https://www.introzo.com/?r=/l&kw=%25E4%25B9%25A6%25E5%258C%2585&origin_id=&sort=0')
时间.睡眠(3)
# 刷新浏览器
浏览器刷新()
#获取html界面中所有元素
html = 浏览器.page_source
#使用正则表达式提取产品名称和价格
名称 = re.findall('[\u4e00-\u9fa50-9a-zA-Z【】\-!]*包[\u4e00-\u9fa50-9a-zA-Z【】\-!]*', html)
价格 = re.findall('\d*\.*\d*', html)
#观察元素特征,区分元素,保留有用的元素
对于名称中的名称:
名称 = str(名称).split(">")[1]
名称 = 名称.split("<")[0]
all_name.append(名称)
对于价格中的价格:
价格 = str(价格).split(">")[1]
all_price.append(价格)
#输出产品名称和价格
for i in range(1,61): # 提取60条产品信息
print(str(i)+' '+all_name[i]+' '+all_price[i])
效果如下
经验
这个作业教会了我使用selenium库访问网页,学习使用re.find_all函数处理获取到的元素
作业③:
要求:抓取给定网页(https://www.introzo.com/info/1071/4481.htm)或自选网页的所有JPEG、JPG格式文件
输出信息:将所选网页中的所有JPEG和JPG文件保存在文件夹中
导入urllib.request
从 bs4 导入 BeautifulSoup
#需要抓取的网站URL
url = "https://www.introzo.com/info/1071/4481.htm"
#获取网页元素
响应 = urllib.request.urlopen(url)
内容 = 响应.read()
html = content.decode("utf-8")
#打印(html)
汤 = BeautifulSoup(html,"lxml")
# 打印(汤)
图像 = www.introzo.com('img[src]')
元素=[]
#将图片地址与网页元素分开
对于图像中的图像:
# 打印(类型(图像))
image1 = str(image).split('"')[1]
#print(类型(图像1))
image2 = image1.split('"')[0]
#打印(图像2)
elements.append("https://www.introzo.com/"+image2)
#下载图片到指定文件夹
我=0
对于元素中的元素:
urllib.request.urlretrieve(element, f'D:/pythonProject/caiji/shijian1/{i}.jpg')
我+=1
打印(元素)
效果如下
经验
通过这次实验,我学会了如何使用request.urlretrieve函数来下载图片,让我受益匪浅。
相关文章
- 10-03 android 表格布局属性
- 10-03 android表格布局介绍,TableLayout
- 10-03 html表格在页面上的位置,css表格布局-dis
- 10-03 php是一种编程语言吗?
- 10-03 如何下载wampserver
- 10-03 如何在php中启动exe文件
- 10-03 本田宣布2025年拆除东京总部大楼 2030年完成
- 10-03 曝三菱汽车已决定全面放弃中国生产 日系车开始出局?
- 10-03 问界M9 35万起售?内部人士:纯属无稽之谈!
- 10-03 2023年数据采集与融合技术实践作业1
- 10-03 自我介绍
- 10-03 2023年数据采集与融合技术实践作业
- 10-03 MySQL判断空值的方法是NULL和(mysql中
- 10-03 Linux网卡验证解决方案:turn it off
- 10-03 Linux下如何使用C语言实现文件复制操作(lin
- 10-03 Linux系统下的游戏:优质选择,更好体验(Lin
- 10-03 回答Linux时区问题:00 00代表哪个时区?
- 10-03 Linux下如何限制ssh登录? (Linux限制
- 10-03 jQuery实现手机下拉显示新内容动画反弹
- 10-03 jQuery实时统计输入框的字数及限制
- 最近发表