用py写个爬取豆瓣网页的电影
时间: 2023-03-13 15:46:39 浏览: 50
我可以用Python来编写一个爬取豆瓣网页上的电影程序。首先,需要使用requests库获取网页源代码;其次,需要使用BeautifulSoup库对网页进行解析;最后,使用Python列表和字典来保存电影数据。
相关问题
用scrapy写一个爬取豆瓣电影的脚本
好的,以下是一个简单的使用Scrapy爬取豆瓣电影的脚本:
首先,创建一个Scrapy项目:
```
scrapy startproject douban_movie
```
然后,在项目的根目录下创建一个名为douban_movie_spider.py的爬虫文件。在该文件中,编写如下代码:
```python
import scrapy
class DoubanMovieSpider(scrapy.Spider):
name = 'douban_movie'
allowed_domains = ['movie.douban.com']
start_urls = ['https://movie.douban.com/top250']
def parse(self, response):
for movie in response.xpath('//div[@class="hd"]'):
yield {'title': movie.xpath('a/span[@class="title"]/text()').extract_first()}
next_page = response.xpath('//span[@class="next"]/a/@href').extract_first()
if next_page:
yield scrapy.Request(response.urljoin(next_page), callback=self.parse)
```
在这个爬虫中,我们首先定义了一个名为DoubanMovieSpider的类,它继承自Scrapy的Spider类。我们设置了一些属性,包括name(爬虫的名称)、allowed_domains(允许爬取的域名)和start_urls(起始URL)。
在parse()方法中,我们使用XPath表达式来提取每部电影的标题,并将其作为一个字典的值返回。我们还使用XPath表达式来提取下一页的URL,并使用Scrapy的Request对象获取该URL并继续调用parse()方法。
最后,我们需要在命令行中运行以下命令来启动这个爬虫:
```
scrapy crawl douban_movie -o movies.json
```
这个命令将使用我们刚刚编写的爬虫来爬取豆瓣电影Top250,并将结果保存为JSON文件。
用scrapy爬取豆瓣电影
好的,以下是使用Scrapy爬取豆瓣电影的步骤:
1.创建Scrapy项目
在命令行中输入以下命令,在指定位置创建一个名为douban_movie的Scrapy项目。
```
scrapy startproject douban_movie
```
2.编写Spider
在项目的spiders目录下,创建一个名为douban_spider.py的Python文件。并在其中编写Spider代码。
```
import scrapy
class DoubanSpider(scrapy.Spider):
name = "douban"
allowed_domains = ["movie.douban.com"]
start_urls = [
"https://movie.douban.com/top250"
]
def parse(self, response):
for movie in response.css('div.item'):
yield {
'title': movie.css('span.title::text').get(),
'rating': movie.css('span.rating_num::text').get(),
'link': movie.css('div.hd a::attr(href)').get()
}
next_page = response.css('span.next a::attr(href)').get()
if next_page is not None:
yield response.follow(next_page, self.parse)
```
在这个Spider中,我们首先定义了Spider的名称和允许爬取的域名。然后,我们指定了起始URL,并定义了parse方法来解析网页内容。
在parse方法中,我们使用CSS选择器选取出了每部电影的标题、评分和详情链接,并将它们封装成字典形式返回。同时,我们也使用了response.follow方法来跟随下一页链接继续爬取。
3.设置项目配置
打开项目的settings.py文件,将ROBOTSTXT_OBEY设置为False,这样我们就可以爬取豆瓣电影网站了。
```
ROBOTSTXT_OBEY = False
```
4.运行Spider
在项目的根目录下,执行以下命令来运行Spider。
```
scrapy crawl douban -o movies.csv
```
这个命令会执行我们编写的Spider,并将结果保存到一个名为movies.csv的CSV文件中。
恭喜你,现在你已经成功使用Scrapy爬取了豆瓣电影网站的电影信息!