学习记录:爬取X男语录
程序员文章站
2024-01-23 12:59:58
...
网站:https://lov删除我live.tools/
写个简单准备版
import requests
import csv
url = 'https://api.lovelive.tools/api/SweetNothings/WebSite/1'
for i in range(4):
res = requests.get(url)
json = res.json()
list = json[0]['content']
file = open('demo.csv','a+',newline='',encoding='utf-8')
file.write(list+'\n')
file.close()
列表获取方法
分析列表的结构
[{'id': '0770d78d-bbad-4fa2-812b-9ba6edb293e5', 'content': '思念如白马,自别离,未停蹄', 'likeCount': 4, 'dislikeCount': 5, 'type': '默认分类'}]
思念如白马,自别离,未停蹄
获取系统时间代码
0.2版本 增加头文件,获取系统时间,延时获取,显示循环爬取的次数,显示当前爬取的文本内容
#请求头文件
import requests
#csv文件操作头
import csv
#获取系统时间的库
import datetime as dt
#延时大法
import time
#获取渣男语录的网址
url = 'https://api.lovelive.tools/api/SweetNothings/WebSite/1'
#设置头文件,伪装浏览器访问
headers = {
'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4098.3 Safari/537.36',
}
#获取当前系统时间
now_time = dt.datetime.now().strftime('%F %T')
#先写入本次爬取的系统时间
file = open('渣男语录.csv','a+',newline='',encoding='gbk')
#写入时间
file.write(now_time+'\n')#加\n换行好看一点
#for循环i从range随机数获取次数,进行循环,,后期可以利用input控制爬取的次数!
for i in range(100):
#设置延迟时间,爬取速度太快容易返回错误值,减少对爬取网站服务器的压力吧。。。
time.sleep(7)
#requests.get获取网页,伪装头headers=headers
res = requests.get(url,headers=headers)
#json解析列表
json = res.json()
#list获取列表content的元素
list = json[0]['content']
#文件写入csv,a+文件存在,追加写入。newline=''分隔符,encoding写入格式
file = open('渣男语录.csv','a+',newline='',encoding='gbk')
#通过file.write方法把list获取列表content的元素写入csv文件,
file.write(str(i)+':'+list+'\n'+'\n')
#关闭文件
file.close()
#输出第i次记录爬取
print('第'+str(i)+'次爬取')
#显示爬取的conntent文本内容
print(list)
运行效果图:
上一篇: 问一个循环输出字符串的有关问题