天天美剧爬虫

天天美剧爬虫

需要用到的库,request,xpath,还有目标网,请求头。

import requests#调用requests库
from lxml import etree#调用xpath
url = 'http://ttmj.cc/type/1.html'#目标网址,通过观察,可以发现这是第一页的数据
#通过更改数字,改页数。可以使用for来获取其他几页的数据。
headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
    }#设置请求头

定义一个函数spider(),来获取网页的源码,再定义一个函数list_page(),用来获取每个美剧网址和源码

def spider():
    response = requests.get(url,headers=headers)
    source = response.text
    list_page(source)#调用上面定义的函数

def list_page(source):
    html = etree.HTML(source)#使用xpath解析
    links = html.xpath("//ul[@class='ul clearfix']/li/a/@href")#获取每个美剧的链接
    url_1 = 'http://ttmj.cc'#这里用xpath获取到的只有一部分链接,所以要加上前面的。
    for link in links:
        link = url_1 + link
        get_detaile_page(link)#获取每一部美剧链接后,获取详情页的信息。

获取每一部美剧链接后,获取详情页的信息。
定义函数get_detaile_page(),获取到需要的信息后,放到一个字典里,然后打印出来。

def get_detaile_page(link):
    movies = {}#新建一个字典,把获取到的东西全放到字典里。
    response = requests.get(link,headers=headers)
    text = response.text#获取详情页源码
    html = etree.HTML(text)#使用xpath解析
    video_url = link#美剧网址
    name = html.xpath("//h1/text()")#美剧名字
    performer = html.xpath("//dl[1]//text()")#主演
    del performer[0]#这里面获得到的数据第一个元素带有‘主演:’,所以删去。因为xpath语法还弄的不明白,所以用del。
    state = html.xpath("//dl[2]//text()")#状态
    del state[0]#原因同上,多了个状态。
    area = html.xpath("//dl[@class='dl-left mb-dl-right']//a//text()")#地区
    time = html.xpath("//dl[7]//text()")#时间
    del time[0]
    movies = {
            'video_url':video_url,
            'name':name,
            'performer':performer,
            'state':state,
            'area':area,
            'time':time
        }
    print(movies)

没了
这是全部代码。

import requests#调用requests库
from lxml import etree#调用xpath
url = 'http://ttmj.cc/type/1.html'#目标网址,通过观察,可以发现这是第一页的数据,通过更改数字,改页数。可以使用for来获取其他几页的数据。
headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
    }#设置请求头

def get_detaile_page(link):
    movies = {}#新建一个字典,把获取到的东西全放到字典里。
    response = requests.get(link,headers=headers)
    text = response.text#获取详情页源码
    html = etree.HTML(text)#使用xpath解析
    video_url = link#美剧网址
    name = html.xpath("//h1/text()")#美剧名字
    performer = html.xpath("//dl[1]//text()")#主演
    del performer[0]#这里面获得到的数据第一个元素带有‘主演:’,所以删去。因为xpath语法还弄的不明白,所以用del。
    state = html.xpath("//dl[2]//text()")#状态
    del state[0]#原因同上,多了个状态。
    area = html.xpath("//dl[@class='dl-left mb-dl-right']//a//text()")#地区
    time = html.xpath("//dl[7]//text()")#时间
    del time[0]
    movies = {
            'video_url':video_url,
            'name':name,
            'performer':performer,
            'state':state,
            'area':area,
            'time':time
        }
    print(movies)
    
    

def list_page(source):
    html = etree.HTML(source)#使用xpath解析
    links = html.xpath("//ul[@class='ul clearfix']/li/a/@href")#获取每个美剧的链接
    url_1 = 'http://ttmj.cc'#这里用xpath获取到的只有一部分链接,所以要加上前面的。
    for link in links:
        link = url_1 + link
        get_detaile_page(link)#获取每一部美剧链接后,获取详情页的信息。



def spider():
    response = requests.get(url,headers=headers)
    source = response.text
    list_page(source)#调用上面定义的函数


if __name__ == "__main__":
    spider()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wow root

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值