Python openpyxl问题 问下
本帖最后由 hahawangzi 于 2020-5-12 15:54 编辑print("这是第{}页内容".format(str(i)))
r= requests.get(url+str(i)+".html",headers=headers)
soup=BeautifulSoup(r.text,"lxml")
table=soup.find('ul',class_="artlist clearfix")
for j in table.find_all('li',class_="artlist_item"):
dict["游戏名"]=j.find('h4',class_="artlist_title").getText()
dict["网页地址"]=j.find('a',href=re.compile("/artdetail-\d.*")).get('href')
#print(dict)
r2 = requests.get(url2+dict["网页地址"],headers=headers)
soup2=BeautifulSoup(r2.text,'lxml')
table2 = soup2.find('article',class_="article_content")
pan=re.compile("https://pan.baidu.com/.*")
pan2=re.compile("提取码.*")
pan3=re.compile(r'\xa0') #为了去掉匹配后出现的\xa0 用re.sub方法替换掉空格
for s in table2.find_all('p'):
if len(re.findall(pan,str(s.text)))>0:
dict["下载地址"]=str(re.sub(pan3,'',str(re.findall(pan,str(s.text)))))
if len(re.findall(pan2,str(s.text)))>0:
dict["ma"]=str(re.sub(pan3,'',str(re.findall(pan2,str(s.text)))))
wb=Workbook()
ws=wb.active
sheet = wb.create_sheet("switch",0)
sheet.append()
print(dict)
wb.save("switch1.xlsx")
print("保存成功")
想问下上图出现怎么多爬出来的数据, sheet.append() 但是最后保存的数据,为什么只有最后最后一行 只有绝体绝命4的下载地址 游戏名
我明明是又循环的呀,用文本保存就没问题,这是什么原因啊?
r= requests.get(url+str(i)+".html",headers=headers)
soup=BeautifulSoup(r.text,"lxml")
table=soup.find('ul',class_="artlist clearfix")
#这几句可以直接用Pandas的read_html完成 一行一行写
datalist =
for col in range(1,4):
sheet.cell(column=col,row=row,value=datalist)
#row 可以定义一个静态变量static 2014晴天 发表于 2020-5-7 09:04
r= requests.get(url+str(i)+".html",headers=headers)
soup=Beautif ...
没学过这个模块 能简单写个例子吗 我去学一下 zjkhcjq 发表于 2020-5-7 09:11
一行一行写
datalist =
就是先把字典,做成一个list 然后一行一行的写进去啊?column=col,row=row 这里我不太懂,为什么要怎么复值一下? 2014晴天 发表于 2020-5-7 09:04
r= requests.get(url+str(i)+".html",headers=headers)
soup=Beautif ...
我这个网页里 不是表格形数据 也能用啊 本帖最后由 rsnodame 于 2020-5-7 11:13 编辑
{:301_988:}你这段代码中,先循环获取了游戏名和网址,接着对该网址内的下载链接再做了次循环,也就是循环里套了一个循环。
而你要无论是创建或是保存xls文件,必须是要放在最外层的循环——也就是游戏名和网址的循环——之外的。
请你仔细检查代码,看看创建Workbook()以及新建sheet,还有这句wb.save("switch1.xlsx")被放在了哪里{:301_988:} wb=Workbook()
ws=wb.active
sheet = wb.create_sheet("switch",0)
把这部分放在循环的前面,重复建工作表,把前面的数据冲没了 ymhld 发表于 2020-5-7 20:21
wb=Workbook()
ws=wb.active
sheet = wb.create_sheet("switc ...
多谢提醒!!!!!!!!!!! 一下就看出来了!!!厉害!!! rsnodame 发表于 2020-5-7 11:09
你这段代码中,先循环获取了游戏名和网址,接着对该网址内的下载链接再做了次循环,也就是循环 ...
对的 对的,看到了我才想通了,原来是怎么回事。。。。。。。。。。。以后还要在仔细点
页:
[1]
2