[简单的python爬虫实战] ,在torrentkittyzw获取磁力链接

需求分析: 有些时候,想到网上找点小电影,但是又不想上网站上看,想下载下来慢慢品味。出于这种需求下,做了这么一个小工具。先上网上找提供磁力链接的网站,这里选择的是torrentkittyzw。

引入要使用的库:

import requests 
from bs4 import BeautifulSoup 
import csv # 利用csv文件保存数据
构造网址:
def CreateURL():
    url = r"http://www.torrentkittyzw.info"
    search = input('请输入要搜索的内容:')
    page = r'/1.htm' #这里是搜索的页码,默认是第一页,也可以构造循环函数到生成多个页面url
    indexURL = url+r'/s/'+search+page
    return indexURL 

定义url请求函数: 获取目标页面的源代码。由于只爬取一页的内容,因此没有做反爬措施。

def urlOpen(url):
    res = requests.get(url)
    res.encoding = 'UTF-8'
    return res.text 

解析索引页,获得详情页的地址列表:

def parseIndex(html):
    soup = BeautifulSoup(html,'lxml')
    detailUrlList = soup.select('.j_a1')
    urlList=[]
    for i in detailUrlList:
        urlList.append(i.attrs['href'])
    return urlList

解析详情页,获得详情页的标题和磁力链接:

def parseDetail(html):
    soup = BeautifulSoup(html, 'lxml')
    title = soup.select('.cnone')[0].h2.text
    print('title:',title)
    link = soup.select('#magnetLink')[0].text
    print('link:',link)
    #preview = soup.select('pre')[0].text # 磁力链接内容预览
    Resources= [title, link]
    return Resources

利用csv 文件把信息存储起来

def saveFile(Resources):
    with open('download.csv','a+',newline='') as f:
        csv_file = csv.writer(f, dialect='excel')
        csv_file.writerow(Resources)

利用main函数把函数依据逻辑组合起来:

def main():
    url = CreateURL()
    html = urlOpen(url)
    urlList = parseIndex(html)
    for i in urlList:
        html = urlOpen("http://www.torrentkittyzw.info" + i )
        try:
            Resources = parseDetail(html)
            saveFile(Resources)
        except:
            print('出错了')
            continue
    input('结束')
if __name__ == '__main__':
    main()

最后,到文件夹内的download.csv 文件 中便可以 获取我们需要的 链接即可~

你可能感兴趣的:(Python,爬虫)