feliks33 2021-06-24 09:17 采纳率: 100%
浏览 13
已采纳

这个应该怎么改才能抓取详情信息

​
import requests
from bs4 import BeautifulSoup
import pandas as pd 

def get_data(url):
    headers={'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) \
                        AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"}
    
    try:
        r = requests.get(url, headers=headers)
        r.encoding = 'GBK'
        r.raise_for_status()
        return r.text
    except requests.HTTPError as e:
        print(e)
        print("HTTPError")
    except requests.RequestException as e:
        print(e)
    except:
        print("Unknown Error !")


def parse_data(html):
    soup = BeautifulSoup(html, "html.parser")
    soup

    tbList =soup.find_all('table', attrs = {'class': 'tbspan'})

    for item in tbList:
        p=item.stripped_strings
        for i in p:
            print(i)
            #print(2)
        movie = []
        link = item.b.find_all('a')[1]
        name = link["title"]
        url = 'https://www.dy2018.com' + link["href"]
    
        try:
            temp = soup.BeautifulSoup(data(url), 'html.parser')
            tbody = temp.find_all('tbody')
        
            for i in tbody:
                download = i.a.text
                if 'magnet:?xt=urn:btih' in download:
                    movie.append(name)
                    movie.append(url)
                    movie.append(download)
                    #print (movie)
                    movie.append(movie)
                    break
        
        except Exception as e:
            print(e)
    return movie  
def save_data(data):
    filename = 'tt.csv'
    dataframe = pd.DataFrame(data)
    dataframe.to_csv(filename,mode='a',index=False, sep=',')

def main():
    for page in range(1,2):
        print('正在爬取:第' + str(page) + '页......')
        if page == 1:
            index = 'index'
        else:
            index = 'index_' + str(page)
        url = 'https://www.dy2018.com/html/bikan/'+ index +'.html'
        html = get_data(url)
        movies = parse_data(html)
        save_data(movies)
        print('第' + str(page) + '页完成!')
    
if __name__ == '__main__':
    print('爬虫启动成功!')
    main()
    print('爬虫执行完毕!')


​

爬取的电影天堂但是保存不到本地

  • 写回答

2条回答 默认 最新

  • CSDN专家-黄老师 2021-06-24 09:36
    关注

    name = link["title"],,link没有title这个属性,应该是定位问题吧

    如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢
     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?