鱼C论坛

 找回密码
 立即注册
查看: 2153|回复: 9

使用requests库

[复制链接]
发表于 2021-6-26 20:19:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
从豆瓣中选择一部自己喜欢的电影,爬取电影的100 条短评和评分,并将短评和评分保存为csv 格式
使用BeautifulSoup4 库分析HTML 数据
使用requests 库实现网络爬虫程序

编写一个程序
使用 requests库爬取 2021年全国大学排名,并按格式输出各大学数据,最后绘制 前 10名大学分数柱状图
排名 学校名称 省市 总分 标签(一流大学A类,985,211)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-26 21:18:37 | 显示全部楼层
50
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-26 22:41:58 | 显示全部楼层
先自己动手做,有代码问题再来问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-27 09:29:32 | 显示全部楼层
这活二百鱼币我给你干了,不贵吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-27 09:54:11 | 显示全部楼层
隔这小猿搜题呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-27 15:17:18 | 显示全部楼层
skyrimz 发表于 2021-6-27 09:54
隔这小猿搜题呢?

我怀疑你在打广告
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-27 18:31:40 | 显示全部楼层
skyrimz 发表于 2021-6-27 09:54
隔这小猿搜题呢?

搁这搁着呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-28 14:57:43 | 显示全部楼层
  1. import json
  2. import requests
  3. def getHTMLText(url):
  4.     try:
  5.         r = requests.get(url)
  6.         r.raise_for_status()
  7.         r.encoding = r.apparent_encoding
  8.         return r.text
  9.     except:
  10.         return ""
  11. def printUnivList(ulist, html, num):
  12.     data = json.loads(html)
  13.     content = data['data']['rankings']
  14.     for i in range(num):
  15.         global name
  16.         global score
  17.         index = content[i]['rankOverall']
  18.         name = content[i]['univNameCn']
  19.         score = content[i]['score']
  20.         category = content[i]['univTags']
  21.         ulist.append([index, name, score, str(category)])
  22.     tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}\t{4:^10}"
  23.     print(tplt.format("排名", "学校名称", "总分", chr(12288), "标签"))
  24.     '''chr(12288)为中文空格编码'''
  25.     for i in range(num):
  26.         u = ulist[i]
  27.         print(tplt.format(u[0], u[1], u[2], chr(12288), u[3]))
  28. def main():
  29.     uinfo = []
  30.     url = 'https://www.shanghairanking.cn/api/pub/v1/bcur?bcur_type=11&year=2021'
  31.     html = getHTMLText(url)
  32.     printUnivList(uinfo, html, 10)
  33. main()
复制代码


少写了省份,
输出的标签['一流大学A类', '985', '211']怎么去掉[]和"
ulist.append([index, name, score, str(category)])为什么没有str()会报错TypeError
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-28 15:30:03 | 显示全部楼层
  1. import requests
  2. import pandas
  3. from bs4 import BeautifulSoup
  4. r = requests.get('https://book.douban.com/subject/1084336/comments/').text
  5. soup = BeautifulSoup(r, 'lxml')
  6. pattern = soup.find_all('span', 'short')
  7. for item in pattern:
  8.     print(item.string)
  9. comments = []
  10. for item in pattern:
  11.     comments.append(item.string)
  12. f = pandas.DataFrame(comments)
  13. f.to_csv('comments.csv', encoding='utf-8_sig')[color=DeepSkyBlue][/color]
复制代码

怎么用代理对付反爬虫呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-29 10:20:55 | 显示全部楼层
  1. import json
  2. import requests



  3. def getHTMLText(url):
  4.     try:
  5.         r = requests.get(url)
  6.         r.raise_for_status()
  7.         r.encoding = "utf-8"
  8.         return r.text
  9.     except:
  10.         return ""


  11. def printUnivList(ulist, html, num):
  12.     data = json.loads(html)
  13.     global content
  14.     content = data['data']['rankings']
  15.     for i in range(num):
  16.         index = content[i]['rankOverall']
  17.         name = content[i]['univNameCn']
  18.         province = content[i]['province']
  19.         score = content[i]['score']
  20.         category0 = content[i]['univTags']
  21.         category1 = str(category0)
  22.         category = category1.replace('[', '').replace(']', '').replace("'", '')
  23.         ulist.append([index, name, province, score, category])
  24.     tplt = "{0:^10}\t{1:^10}\t{2:^10}\t{3:^10}\t{5:^10}"
  25.     print(tplt.format("排名", "学校名称", "省市", "总分", chr(12288), "标签"))
  26.     # chr(12288)为中文空格编码
  27.     for i in range(num):
  28.         u = ulist[i]
  29.         print(tplt.format(u[0], u[1], u[2], u[3], chr(12288), u[4]))


  30. def main():
  31.     uinfo = []
  32.     url = 'https://www.shanghairanking.cn/api/pub/v1/bcur?bcur_type=11&year=2021'
  33.     html = getHTMLText(url)
  34.     printUnivList(uinfo, html, 10)


  35. if __name__ == '__main__':
  36.     main()
复制代码


剩画图了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 03:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表