2016-1202更新:这部分代码已经完成,实现了下载全部封面,种子URL;改变IP防止服务器封禁等。详细见知乎回答——
http://www.zhihu.com/question/27621722/answer/133705335
代码在回答的最后的github链接中
今天爬取1024核工厂的网站,一开始不设置Header的话,直接返回403,拒接访问,所以必须加上头。
另外在Accept-Encoding这里设置为 identity 的话,本意是设置不允许压缩文件,但是再用postman测试时,发现网站总是返回gzip压缩后的文件。本来以为需要解压的,没想到requests已经完成了这一步骤。
然后bsObj还是乱码,原来是编码问题,网站编码为‘utf-8’,但是调试时输入start_html.encoding,结果是ISO什么解码格式。所以强制‘utf-8’方式解码,完美解决。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import requests ##导入requests
headers = {'User-Agent':"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
'Accept':"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
'Accept-Encoding':'gzip',
}
URL_1024="http://x3.1024lualu.click/pw/thread.php?fid=22"
start_html = requests.get(URL_1024, headers=headers)
start_html.encoding='utf-8'
bsObj = BeautifulSoup(start_html.text,'html.parser')
下面是爬出的结果:
这是文件夹目录,每个文件夹内有一个TXT文档,文档里记录了子页面的地址。
下一步要从子页面上把torrent和封面下载到这些文件夹中去,加油。