新手试着写了个程序
目标是:https://www.rijutv.com/riju/
试着搜索了下关键词“相棒” :https://www.rijutv.com/index.php?c=so&module=video&keyword=相棒
然后下写代码:
原来输出的“type(re_t[0][‘href’])” 结果是:“<class ‘str’>”
改呗,“str(re_t[i][‘href’]).encode()”,觉得应该可以了,结果又是当头一棒,
嗯?关键词错误?这是什么鬼?
仔细检查了一下原来列表【re_t】有些元素里面没有‘alt’ 属性:
好吧,修改之前的匹配关键词,后面的有‘title’标签 前面我需要的没有。
嗯,不错,没报错,但是查看了下结果:
嗯? 怎么才一组?再看代码,“wb” 二进制写,文件存储同样被清空,好吧 那我先打开文件再执行循环,那么文件关闭也不能用了 删掉。
再看结果:
结果有了,虽然排版上有些不好看,改改就好了。把f.write(str(re_t[i].img[‘alt’]).encode())跟f.write(b’\n\n’)掉个头也就是了。
花了一个小时,主要还是语法结构不熟悉。
from bs4 import BeautifulSoup
import requests
responce=requests.get(‘https://www.rijutv.com/index.php?c=so&module=video&keyword=相棒’)
re_b=BeautifulSoup(responce.text,‘lxml’)
re_t=re_b.find_all(‘a’,class_=“thumb”,title=False)
with open(‘result.txt’, ‘wb’) as f:
for i in range(len(re_t)):
f.write(b’https://www.rijutv.com/riju’ + str(re_t[i][‘href’]).encode())
f.write(str(re_t[i].img[‘alt’]).encode())
f.write(b’\n\n’)
最后的代码就这样了