书接上文,利用csv包来帮助全班的小伙伴进行“签到”
本帖最后由 hj170520 于 2020-5-11 16:29 编辑书接上文,https://www.52pojie.cn/thread-1171669-1-1.html
原始话题:https://www.52pojie.cn/thread-1171440-1-1.html
班上经常有粗心的同学,不老实签到,一直被班委提醒,现在我在原来的基础上增添了用csv包完成全班的自动签到,再也不担心没签到成功了!
import csv
import json
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.2 Safari/605.1.15'
}
url_MD5 = "********************"
url_info = "********************"
url_submit = '********************t'
csvFile = open("cardId.csv", "r")
rows = csv.DictReader(csvFile)
cardId = []
for row in rows:
cardId.append(row["cardId"])
for i in range (len(cardId)):
cardId_x = cardId
my_data = {"cardId": cardId_x}
res_MD5 = requests.post(url_MD5, headers = headers, data = my_data).text
res_MD_dict = json.loads(res_MD5)
MD5 = res_MD_dict["data"]
my_data["md5"] = MD5
res_info = requests.post(url_info, headers = headers, data = my_data).text
res_info_dict = json.loads(res_info)
list = res_info_dict["data"]["list"]
list_dict = dict(list)
data_submit = {}
data_submit["bh"] = list_dict["bh"]
data_submit["xykh"] = list_dict["xykh"]
data_submit["twfw"] = list_dict["twfw"]
data_submit["sfzx"] = list_dict["sfzx"]
data_submit["sfgl"] = list_dict["sfgl"]
data_submit["szsf"] = list_dict["szsf"]
data_submit["szds"] = list_dict["szds"]
data_submit["szxq"] = list_dict["szxq"]
data_submit["sfcg"] = list_dict["sfcg"]
data_submit["bllb"] = list_dict["bllb"]
data_submit["sfjctr"] = list_dict["sfjctr"]
data_submit["zcwd"] = list_dict["zcwd"]
data_submit["zwwd"] = list_dict["zwwd"]
data_submit["wswd"] = list_dict["wswd"]
data_submit["sbr"] = list_dict["sbr"]
data_submit["sjd"] = res_info_dict["data"]["sjd"]
print("可爱的'" + list_dict["xm"] + "'同学正在签到")
res_submit = requests.post(url_submit, headers=headers, data=data_submit).text
if json.loads(res_submit)["message"] == "成功":
print("签到成功")
else:
print("签到失败")
有朋友说“动态参数”{:301_999:},我还是新手,不太理解也就没有改。但是requests.post(url_MD5, headers = headers, data = my_data).text
这个部分我改了,!我接下来想做爬虫了,有个etree函数没搞明白,希望更多的大佬能指点指点我
一会“赶火车”回学校了,我会想你们的。 cardId.csv
数据文件不方便上传
模式差不多是
cardId
320****x
320****y
... 一、etree不叫函数哦{:301_971:},他是是lxml 模块里面的,本质是一个类,网上:1.解析HTML:使用 etree.HTML(text) 将字符串格式的 html 片段解析成 html 文档2.读取xml文件3.etree和XPath 配合使用
二、爬虫提取信息有BeautifulSoup库,俗称美丽汤{:301_998:},
三、建议好好学习正则,学会正则怕遍天下也不怕{:301_988:} lntuer 发表于 2020-5-5 14:24
一、etree不叫函数哦,他是是lxml 模块里面的,本质是一个类,网上:1.解析HTML:使用 etree.HT ...
{:301_976:} 谢谢大佬!长知识了
正则好像很难的样子,还没学就吓死不少人了{:301_991:} hj170520 发表于 2020-5-5 14:44
谢谢大佬!长知识了
正则好像很难的样子,还没学就吓死不少人了
day day study,day day up!日益精进{:301_998:} lntuer 发表于 2020-5-5 14:52
day day study,day day up!日益精进
{:301_1001:}是的,我一定要加油! rows = csv.DictReader(csvFile)
cardId = []
for row in rows:
cardId.append(row["cardId"])
for i in range (len(cardId)):
cardId_x = cardId
这部分是不是有点重复?
下面也没有用到i
for row in rows:这个循环是不是就够了 ciker_li 发表于 2020-5-5 21:53
rows = csv.DictReader(csvFile)
cardId = []
for row in rows:
我印象里我做到这一步的时候,我发现rows里的数据因为是dict形式无法直接用。所以我把dict文件数据拿出来转成了list数据。我也不知道该怎么简化,还希望您斧正! hj170520 发表于 2020-5-5 22:03
我印象里我做到这一步的时候,我发现rows里的数据因为是dict形式无法直接用。所以我把dict文件数据拿出来 ...
for row in rows:
my_data = {"cardId": row["cardId"]}
这样能行吗? ciker_li 发表于 2020-5-6 09:27
for row in rows:
my_data = {"cardId": row["cardId"]}
这样能行吗?
我刚下火车。可以的,果然是大佬。{:301_993:}
页:
[1]