综合运用爬虫技术对大众点评进行爬取并附上代码
时间: 2024-06-09 10:08:29 浏览: 283
以下是使用 Python 和 Scrapy 框架编写的爬取大众点评餐厅信息的示例代码:
首先,需要在终端中安装 Scrapy:
```
pip install scrapy
```
然后创建一个新的 Scrapy 项目:
```
scrapy startproject dianping
```
接着在项目的根目录下创建一个新的爬虫:
```
scrapy genspider restaurant www.dianping.com
```
这个命令会创建一个新的 `restaurant.py` 文件,用于编写爬取代码。
接下来就是编写代码了。以下是一个简单的示例,用于爬取大众点评上的餐厅信息:
```python
import scrapy
class RestaurantSpider(scrapy.Spider):
name = 'restaurant'
allowed_domains = ['www.dianping.com']
start_urls = ['https://www.dianping.com/search/category/3/10']
def parse(self, response):
# 爬取餐厅列表页面
for restaurant in response.css('.shop-list li'):
# 获取餐厅名称
name = restaurant.css('.tit h4::text').get()
# 获取餐厅评分
rating = restaurant.css('.comment span::text').get()
# 获取餐厅地址
address = restaurant.css('.tag-addr a::text').get()
# 输出餐厅信息
yield {
'name': name,
'rating': rating,
'address': address,
}
# 爬取下一页
next_page = response.css('.page a.next::attr(href)').get()
if next_page:
yield response.follow(next_page, self.parse)
```
代码解释:
- `name`:爬虫的名称。
- `allowed_domains`:允许爬取的域名。
- `start_urls`:开始爬取的 URL。
- `parse` 方法:处理响应并提取数据的回调函数。
在终端中运行以下命令,即可开始爬取大众点评上的餐厅信息:
```
scrapy crawl restaurant -o restaurants.json
```
这个命令会将爬取到的数据保存到 `restaurants.json` 文件中。
注意:在爬取大众点评时,需要注意反爬虫策略。如果爬取过于频繁,会被大众点评检测到并禁止访问。因此,建议使用代理 IP 和随机 User-Agent 等方式来反反爬虫。
阅读全文