用pycharm scrapy框架爬取https://www.shanghairanking.cn/institution校名、地区、管理部门、类别、双一流的内容并写入csv文件
时间: 2024-01-17 11:05:19 浏览: 95
好的,以下是一个使用Scrapy框架的示例代码,您可以在PyCharm中创建一个新的Scrapy项目并将其替换为spider.py文件:
```python
import scrapy
import csv
class UniversitySpider(scrapy.Spider):
name = "university"
start_urls = ["https://www.shanghairanking.cn/institution"]
def parse(self, response):
for university in response.css("table#UniversityRanking tbody tr"):
name = university.css("td[class*=left] a::text").get().strip()
region = university.css("td")[1].css("a::text").get().strip()
department = university.css("td")[2].css("a::text").get().strip()
category = university.css("td")[3].css("a::text").get().strip()
double_first_class = university.css("td")[4].css("a::text").get().strip()
# 将数据写入CSV文件
with open("universities.csv", "a", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow([name, region, department, category, double_first_class])
# 获取下一页链接并继续爬取
next_page = response.css("div.pagination a.next::attr(href)").get()
if next_page is not None:
yield response.follow(next_page, self.parse)
```
这段代码将使用Scrapy框架爬取上海交通大学排名网站的内容,并将校名、地区、管理部门、类别、双一流写入CSV文件中。请确保您已经安装了Scrapy和csv模块,并将项目文件夹中的settings.py中的ROBOTSTXT_OBEY设置为False,以允许爬取。
阅读全文