前文:http://bbs.qyai.net/article/65
直接访问https://www.wenku8.net/index.php,会发现页面被重定向到了https://www.wenku8.net/login.php(如下图),所以,这个网站很多内容你不登录是访问不到的。那么,login接口就显得极为重要。
先尝试直接用rquests的get方法获取一下这个页面。
果不其然,返回了403 Forbidden状态码:这时,当然是雷打不动的UA伪装headers环节:可见,伪装后获取成功了,让我们来打印一下reponse.text:咦,在最后应该是中文的部分出现了乱码,让我们来改一个编码:可见乱码问题消失了,你问我为什么不用utf-8,GBK,GB2312?当然是因为这网站比较邪门,汉字是国标编码,但它汉字里有时会夹个日文假名,这时国标码就无能为力,反而会报错了。
你问我啥是ansi?百度百科甩给你:https://baike.baidu.com/item/ANSI/10401940?fromtitle=ansi%E7%BC%96%E7%A0%81&fromid=9421969&fr=aladdin
爬取到页面后,扔进pycharm里重新格式化一下代码,方便找到表单的html。
这里有个小插曲:pycharm提示我有一个<div>标签未闭合,我仔细确认了一下,果然是这样,于是就向网站的管理员反馈了一下,今天已经被修复了查看一下表单部分的HTML代码,好家伙,还有一个隐藏字段:接下来,就是按照表单构建requests的post data(顺带一提,为了减少频繁操作cookie,我用了requests的session功能):这个usecookie在表单里表现成一个选择框,据我分析应该是这个意思:使用我的登录信息进行测试后,确认可以获取到只有登录后才能获取到的界面:至此,login接口提取成功。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!