爬取猫眼电影TOP100榜

由于猫眼TOP100榜网页是静态网页,用requests库就可以获取到完整的网页源代码,然后用BeautifulSoup4库进行解析。

首先分析网页的url:

通过分析便可以得到网址为:

# i的值为0,10,20,... 对应的分别是第1页,第2页,第3页,...
url = "http://maoyan.com/board/4?offset=" + str(i)

使用一个迭代便可以构造全部网页的url:

for i in range(10):
   i = i * 10
   url = "http://maoyan.com/board/4?offset=" + str(i)

然后用requests库去获取网页源代码,再用BeautifulSoup4库进行解析,定义解析函数html_page_parser(html):

def html_page_parser(html):
    soup = BeautifulSoup(html, 'html5lib')
    for dd_tag in soup.find_all('dd'):
        items = []   # 创建一个列表来存储数据
        for p_tag in dd_tag.find_all('p'):
            items.append(p_tag.string)
            # 开始写入到本地文件
        with open("/home/zhiying/文档/maoyan_top100_films_results1.txt", 'a', encoding='utf-8') as f:
            f.write(dd_tag.i.string + '  ' + items[0].strip() + '  ' + items[1].strip() + '  ' + items[2].strip() + \
                    '    ' + 'http://maoyan.com' + dd_tag.p.a['href'] + '\n')

写入模式用'a' 不用'wt',是因为用'wt'时当写入下一页时会覆盖前一页的内容。


点击查看源代码

至此,获取猫眼TOP100榜的爬虫就完成了。

爬取网站数据,如猫眼电影Top100排行,一般会涉及到网络请求、HTML解析等步骤。这里以PythonBeautifulSoup库作为示例,展示如何用Scrapy框架做一个基本的抓取。首先,你需要安装必要的库: ```bash pip install requests scrapy bs4 ``` 然后创建一个简单的Scrapy项目,比如命名为'movie_spider': ```sh scrapy startproject movie_spider cd movie_spider ``` 接下来,创建一个Item(存储数据结构)文件`items.py`,定义MovieItem: ```python import scrapy class MovieItem(scrapy.Item): title = scrapy.Field() rank = scrapy.Field() rating = scrapy.Field() ... # 根据实际页面结构添加其他字段 ``` 然后在`spiders`目录下创建一个名为`top_movies.py`的爬虫: ```python import scrapy from movie_spider.items import MovieItem class TopMoviesSpider(scrapy.Spider): name = 'top_movies' allowed_domains = ['maoyan.com'] start_urls = ['https://movie.douban.com/top250'] def parse(self, response): # 使用CSS选择器找到电影列表 movie_list = response.css('ol.lister-item') for movie in movie_list: item = MovieItem() item['title'] = movie.css('span.title a::text').get() item['rank'] = movie.css('.rating_num::text').get() ... # 提取其他信息 yield item # 搜索更多页,如果存在分页 next_page = response.css('a.next') if next_page: yield response.follow(next_page, self.parse) ``` 最后,在命令行运行爬虫: ```sh scrapy crawl top_movies ``` 注意,这只是一个基础示例,实际的网页结构可能会有所不同,所以可能需要调整CSS选择器来准确提取数据。此外,频繁爬取可能会触发网站的反爬机制,所以在生产环境中,请遵守网站的robots.txt规则,并尊重版权。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值