QQ海贼王漫画爬取日记之一给自己挖坑

selenium requests beautifulsoup 2016年09月02日 星期五

本人也算是一个海贼迷,这几天项目已上线,相对来说算是闲了点,打算写个程序爬取QQ海贼王漫画全集,既满足兴趣,也满足了爱折腾的性格,O(∩_∩)O~  不多说直接开始 。

初打算用requests请求加上beautifulsoup做html解析的,直接在ipython上面试了试,竟然html上面连这个漫画的块都没有,看来不是这么的顺利,那就加头试试吧,在firefox获取某一页面时复制下请求头。

import requests
from bs4 import BeautifulSoup

headers = {
    'GET': '/ComicView/index/id/505430/cid/854 HTTP/1.1',
    'Host': 'ac.qq.com',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:47.0) Gecko/20100101 Firefox/47.0',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
    'Accept-Encoding': 'gzip, deflate',
    'Cookie': 'theme=dark; roastState=2; readRecord=%5B%5B505430%2C%22%E6%B5%B7%E8%B4%BC%E'
              '7%8E%8B%2F%E8%88%AA%E6%B5%B7%E7%8E%8B%22%2C854%2C%22%E7%AC%AC837%E8%AF%9D%20'
              '%E8%B7%AF%E9%A3%9E%20VS%20%E5%B0%86%E6%98%9F%E8%8B%8F%E6%89%93%22%2C837%5D%5D; '
              'readLastRecord=%5B%5D; pgv_pvi=4386312192; pgv_si=s8462985216; pgv_info=ssid=s5207924920;'
              ' pgv_pvid=7740737808; ts_uid=1986799475; pc_userinfo_cookie=',
    'Connection': 'keep-alive',
    'Cache-Control': 'max-age=0'
}

URL = 'http://ac.qq.com/ComicView/index/id/505430/cid/854'

res = requests.get(URL, headers=headers)
soup = BeautifulSoup(res.content, 'lxml')
print soup.find('ul', {'id': 'comicContain'})

然而结果别不如人意,竟出来了一堆js,这时候才意识到这个没有想象中的那么简单,其中的数据完全是js渲染生成的。

那就希望有api能够去获取这些数据吧 . 通过firefox拦截xrh请求,然而并没有出现所谓的api。

看来这只能去解析js,然后在获取数据了。这下算是给自己挖坑了