学习记录:爬取X男语录

网站: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()

列表获取方法
学习记录:爬取X男语录_第1张图片
学习记录:爬取X男语录_第2张图片
在这里插入图片描述
分析列表的结构

[{'id': '0770d78d-bbad-4fa2-812b-9ba6edb293e5', 'content': '思念如白马,自别离,未停蹄', 'likeCount': 4, 'dislikeCount': 5, 'type': '默认分类'}]
思念如白马,自别离,未停蹄

获取系统时间代码
学习记录:爬取X男语录_第3张图片

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)

运行效果图:

学习记录:爬取X男语录_第4张图片

2019.12.17 解决爬取过程有异常错误,导致程序结束爬取停止

import requests
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; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0',
}
now_time = dt.datetime.now().strftime('%F %T')

file = open('渣男语录.csv','a+',newline='',encoding='gbk')

file.write(now_time+'\n')


for i in range(9999999):
    time.sleep(15)

    res = requests.get(url,headers=headers)

    json = res.json()

    list = json[0]['content']

    try:

        file = open('渣男语录.csv','a+',newline='',encoding='gbk')#,encoding='gbk'
    
        file.write(str(i)+':'+list+'\n'+'\n')

        file.close()

        print('第'+str(i)+'次爬取')

        print(list)
        
    except UnicodeEncodeError:
        
        print('编码出错')
        

加了try…except后
运行效果图

学习记录:爬取X男语录_第5张图片

你可能感兴趣的:(python)