日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python爬虫项目(对博思平台社区话题信息进行爬取并保存)

發布時間:2023/12/16 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬虫项目(对博思平台社区话题信息进行爬取并保存) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

按要求完成對博思平臺社區(http://cqcvc.iflysse.com/Pages/Ask/Index.aspx)話題信息進行爬取并保存。

(1)使用cookie模擬登錄博思教學平臺。

(2)爬取博思平臺社區話題【標題、懸賞、作者、回復數、發布時間】5個字段。

(3)創建表名 ifly_comm_info,字段名【id,title,score,author,ansnum,pubtime】。

(4)將爬取到的數據保存到數據庫。

這是我們收到的要求!!接下來我們創建一個賬號分析一下網頁
這里我們可以看到我們需要的信息都在這里

接下來我們看看它是異步請求數據還是就在網頁源碼里的數據,大部分網站都是采用的異步加載數據,所以這里我們就直接看它的請求
然后我們發現一串有用的信息,這正是我們想要的數據,接下來就是分析請求了

分析如下,我們可以看到使用的post請求,數據類型form data
知道這些就簡單了.

#-*- cdoeing = utf-8 -*- #@Time : 2020-12-17 #@Author : LBOcean import requests import pymysql url = 'http://cqcvc.iflysse.com/Handler/AskHandler.ashx' heard = { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', 'Cookie': '這里寫網頁的cooike' }payload = {'sEcho': 1,'iColumns': 6,'sColumns': ',,,,,','iDisplayStart': 0,'iDisplayLength': 20,'mDataProp_0': 0,'bSortable_0': False,'mDataProp_1': 'Title','bSortable_1': False,'mDataProp_2': 2,'bSortable_2': False,'mDataProp_3': 3,'bSortable_3': False,'mDataProp_4': 4,'bSortable_4': False,'mDataProp_5': 'SubmitTimeStr','bSortable_5': False,'iSortCol_0': 1,'sSortDir_0': 'desc','iSortingCols': 1,'Type': 0,'action': 2,'IsOver': 1,'LabelList': []} #from data 數據 #連接數據庫 db = pymysql.connect(host="localhost",user="root",passwd="110120",db="hous") print("數據庫連接成功") cursor = db.cursor() for i in range(0,20*20+1,20):#每頁又20個數據,獲取20頁data_str_start = 'sEcho=1&iColumns=6&sColumns=%2C%2C%2C%2C%2C&iDisplayStart='data_str_end = '&iDisplayLength=20&mDataProp_0=0&bSortable_0=false&mDataProp_1=Title&bSortable_1=false&mDataProp_2=2&bSortable_2=false&mDataProp_3=3&bSortable_3=false&mDataProp_4=4&bSortable_4=false&mDataProp_5=SubmitTimeStr&bSortable_5=false&iSortCol_0=1&sSortDir_0=desc&iSortingCols=1&Type=0&action=2&IsOver=1&LabelList=%5B%5D'data_end = data_str_start + str(i) + data_str_end#這里我們采用了拼接的方式來獲取數據home = requests.post(url=url, headers=heard, data=data_end).json() # json解析數據dataforce = home['aaData']#我們想要的數據在aaData后面,所以這里過濾掉了前面的數據# print(dataforce.encoding)for e in dataforce:title = e["Title"]score = e["Score"]author = e["SubmitterName"]ansnum = e["AnswerNum"]pubtime = e["SubmitTime"]value = (title,score,author,ansnum,pubtime)sql = 'INSERT INTO ifly_comm_info(title,score,author,ansnum,pubtime) values(%s,%s,%s,%s,%s)'if cursor.execute(sql,value):print("插入成功")db.commit()print(title)print(score)print(author)print(ansnum)print(pubtime)

數據庫信息
CREATE TABLE ifly_comm_info (
id int NOT NULL AUTO_INCREMENT,
title varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
score float(30,0) NOT NULL,
author varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
ansnum float(30,0) NOT NULL,
pubtime varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1302 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

這里我就簡單的截取一段數據庫信息

總結

以上是生活随笔為你收集整理的python爬虫项目(对博思平台社区话题信息进行爬取并保存)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。