爬取豆瓣Top250

用requests库爬取豆瓣Top250

1.requests库

requests库可以自动爬取HTML页面,自动网络请求提交。安装方法:pip install requests
requests库主要有7个方法:
爬取豆瓣Top250_第1张图片
爬取豆瓣Top250_第2张图片

爬取豆瓣Top250_第3张图片

requests库爬取豆瓣Top250

首先打开网页 豆瓣Top250 网址:https://movie.douban.com/top250?start=0&filter=
然后f12,得到如下图:
爬取豆瓣Top250_第4张图片
我们要找的内容在红框里面。
爬取豆瓣Top250_第5张图片
这个页面有25个电影,第一个页面 https://movie.douban.com/top250?start=0&filter=
第二个页面 https://movie.douban.com/top250?start=25&filter=
我们可以观察到 每个页面25部电影,一共10个页面。这里我们用一个循环:

for i in range(0,250,25):
    url = 'https://movie.douban.com/top250?start=' + str(i) +'&filter='
# 爬取豆瓣250

import requests
def getHTML(url):
    
    #url = "https://movie.douban.com/top250"
    headers = {
        'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
        
    }
    # user-agent会告诉网站服务器,访问者是通过什么工具来请求得,如果爬虫请求,一般会拒绝,如果是用户浏览器,就会应答
    res = requests.get(url,headers=headers)
    text = res.text
    item = []
   
    for i in range(25):
        text = text[text.find('alt')+3:]
        item.append(extract(text))
        
    return item
    
def extract(text):
    text = text.split('"')
    name = text[1]
    ima = text[3]
    
    return name,ima


def main():
    #print("{:^10}\t{:^6}\t{:^10}".format("排名","电影名称","图片连接"))
    with open('豆瓣Top250.csv','a',encoding='utf-8') as f:
        for i in range(0,250,25):

            url = 'https://movie.douban.com/top250?start=' + str(i) +'&filter='
            item = getHTML(url)
            for j in range(25):
                f.write('{:^5}\t{}\n'.format(str(i+j+1),item[j]))

                print('{:^5}\t{}\n'.format(str(i+j+1),item[j]))
            #print(type(item[1]))

    

你可能感兴趣的:(爬取豆瓣Top250)