Python爬12306余票
Python爬12306余票
项目地址:https://github.com/ZWN2001/data_spider_12306
数据库课设使用的爬虫
半成品,需要根据todo
自己改改
main.py
查的是学生票
main2.py
查的是成人票
爬虫教程在 here
一些问题的解答
为什么要分成人与学生
如果你进行请求就会发现默认(成人票)只能请求到近几个月的数据。
而学生票则可以请求到更多。
成人与学生爬虫的区别
区别主要在请求的url
与使用的cookie
上。
url
会使用purpose_codes
参数进行区分。
cookie
上,学生票要比成人票的cookie
严格很多,无法直接通过selenium
获取,只能手动填写、更新。
成人票使用了selenium
的无头浏览器,默认使用了谷歌浏览器。
cookie
的结构
两种票的cookie
都是由两部分组成的,一部分是固定的cookie
数据,通过多次相应头的set_Cookie
设置的,从浏览器中可以获取,学生票cookie
还会对其中的一些属性进行修改,并且会添加加密过的fo
属性。
另一部分是请求的行程信息,其中起点与终点的值为站名,站编码
的形式并用escape
编码,这一点在代码中有清晰的体现。
其他可能存疑的技术点
协程、aiohttp
、asyncio
、request
,在教程里都有写
可能的其他问题
关于连接池
懒。
关于被ban
使用时很可能因为各种原因被ban,报错的网页很明显,是后端发现了爬虫,但是不影响cookie的使用,(仅使用aiohttp
时会有这种问题),解决方案是在循环时添加一些sleep
以避免被当成是服务拒绝攻击。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZWN's blog!
评论