用pycharm scrapy框架爬取https://www.shanghairanking.cn/institution校名、地区、管理部门、类别、双一流的内容并写入excel文件的代码
时间: 2024-04-04 22:35:08 浏览: 69
首先,在PyCharm中创建一个新的Scrapy项目,命名为"shanghairanking",然后进入项目文件夹并创建一个名为"spiders"的文件夹,在其中创建一个名为"shanghairanking_spider.py"的Python文件。
在这个文件中,我们将使用Scrapy的XPath选择器来提取网页上的数据,并使用pandas库将数据写入Excel文件中。下面是完整的代码:
```python
import scrapy
import pandas as pd
class ShanghairankingSpider(scrapy.Spider):
name = 'shanghairanking'
allowed_domains = ['shanghairanking.cn']
start_urls = ['https://www.shanghairanking.cn/institution']
def parse(self, response):
# 获取所有大学信息的容器
universities = response.xpath('//div[@class="col-lg-9"]//tr')
for uni in universities:
# 提取大学信息
name = uni.xpath('.//td[1]/a/text()').get()
region = uni.xpath('.//td[2]/text()').get()
department = uni.xpath('.//td[3]/text()').get()
category = uni.xpath('.//td[4]/text()').get()
double_first_class = uni.xpath('.//td[5]/text()').get()
# 将大学信息写入pandas数据框
data = {'校名': [name], '地区': [region], '管理部门': [department], '类别': [category], '双一流': [double_first_class]}
df = pd.DataFrame(data)
# 将数据框写入Excel文件
with pd.ExcelWriter('shanghairanking.xlsx', mode='a', engine='openpyxl') as writer:
df.to_excel(writer, sheet_name='Sheet1', index=False)
```
在上面的代码中,我们首先定义了一个Spider类,其中包含了我们要爬取的网站的URL。在parse()方法中,我们使用XPath选择器从HTML中提取数据,并将其写入pandas数据框。然后,我们将数据框写入Excel文件中。
最后,在项目文件夹中打开终端并执行以下命令以运行爬虫:
```
scrapy crawl shanghairanking
```
这将开始爬取网站并将数据写入Excel文件中。
阅读全文