解析某网站的内容,用requests库获得html内容后,用BeautifulSoup来解析内容
其中有个标签大概这样,
代码流程大概这样
cookie = 'xxxxx'
r = requests.get(url, cookies = cookies)
page = BeautifulSoup(r.text)
page.find('div',class_ ='gh-ji')
结果始终说方法find()返回的是None,此前在类似的问题上坑过,有点印象但记不太清楚,这个class属性中间有空格,不能像正常时候一样写成class="ab-ef gh-ij"
这次我以为又写错了,百度、看网页源标签、看代码中间的-是否写错、甚至双引号换成单引号、看BeautifulSoup官网find()方法的介绍、等等,各种方法一通尝试,前后折腾一个多小时,精疲力尽银镜疼
最后快要放弃时,把r print出来看,根本没有获取到html内容,原来是cookie从浏览器上复制时复制错了
事情不大,代码简单,虽然最后也解决了,但还是很有必要总结下,结合以前的一些经验如下
1 在xx地方报错,xx地方当然要检查,但xx地方用到数据的来龙去脉都要检查,xx附近的代码(前面的和后面)都要检查
2 代码要写准确,多或少一个空格都不行
3 自己想到的方法都没有效果的话,就不要再去一个劲地和自己斗气了,我就容易犯这个毛病,暂时丢开,出去转一圈,放松心情,说不定在路上或者睡觉,起来后在检查几下就想到新的思路了,或者有问题的代码前后拍个照没事看看打发时间也是个办法
当时把能想到的方法都用过,仍不能解决,很可能已经走到死胡同了,不要斗气,放开自己,退一步海阔天空