猫史档案馆


【Python作品分享】爬虫【教程贴】

用户:再见2再见2查看:0 回复:1 评论:0 创建时间:2024-01-25T22:43:38


【作品展示】

center_image

 

【作品介绍】

 

【作品源代码】

import requests
import xlsxwriter

def get_json(index):
    # 爬虫功能
    url = "https://study.163.com/p/search/studycourse.json"

    payload = {
        "activityId": 0,
        "keyword": "python",
        "orderType": 5,
        "pageIndex": index,
        "pageSize": 50,
        "priceType": -1,
        "qualityType": 0,
        "relativeOffset": 0,
        "searchTimeType": -1,
    }

    headers = {
        "accept": "application/json",
        "content-type": "application/json",
        "origin": "https://study.163.com",
        "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KH喵L, like Gecko) Chrome/78.0.3904.70 Safari/537.36"
    }

    try:
        response = requests.post(url,json=payload,headers=headers)
        content = response.json()
        if content and content["code"] == 0:
            return content
        return None

    except:
        print("出错了")

def get_course(content):
    course_list = content["result"]["list"]
    return course_list

def save_excel(course_list):
    for num, course in enumerate(course_list):
        row = 50*(index-1)+num+1
        worksheet.write(row, 0, course["productId"])
        worksheet.write(row, 1, course["courseId"])
        worksheet.write(row, 2, course["productName"])
        worksheet.write(row, 3, course["provider"])
        worksheet.write(row, 4, course["score"])
        worksheet.write(row, 5, course["learnerCount"])
        worksheet.write(row, 6, course["lectorName"])
        worksheet.write(row, 7, course["originalPrice"])
        worksheet.write(row, 8, course["discountPrice"])
        worksheet.write(row, 9, course["bigImgUrl"])
        worksheet.write(row, 10, course["description"])


def main(index):
    content = get_json(index)         # 获取json数据
    course_list = get_course(content)  # 获取第index页的50条件记录
    save_excel(course_list)           # 写入到excel


workbook = xlsxwriter.Workbook("222.xlsx")  # 创建excel
worksheet = workbook.add_worksheet("111")
worksheet.write(0, 0, "商品id")
worksheet.write(0, 1, "课程id")
worksheet.write(0, 2, "课程名称")
worksheet.write(0, 3, "机构名称")
worksheet.write(0, 4, "评分")
worksheet.write(0, 5, "学习人数")
worksheet.write(0, 6, "讲师名称")
worksheet.write(0, 7, "原价")
worksheet.write(0, 8, "折扣价")
worksheet.write(0, 9, "图片")
worksheet.write(0, 10, "课程描述")

total_page_count = get_json(1)["result"]["query"]["totlePageCount"]  # 总页数
for index in range(1, total_page_count+1):
    main(index)
workbook.close()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
lgz1111lgz1111

xlsxwriter是什么?

点赞0


评论