写一个使用scrapy爬取某网站数据并写入mysql数据库中
时间: 2024-03-19 16:40:57 浏览: 141
利用scrapy将爬到的数据保存到mysql(防止重复)
好的,以下是一个使用 Scrapy 爬取某网站数据并写入 MySQL 数据库中的示例代码:
```python
import scrapy
import mysql.connector
class MySpider(scrapy.Spider):
name = "myspider"
def start_requests(self):
urls = [
'http://www.example.com/page1.html',
'http://www.example.com/page2.html',
'http://www.example.com/page3.html'
]
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
# 使用 CSS 选择器提取数据
items = response.css('.item')
for item in items:
# 提取数据
name = item.css('.name::text').get()
price = item.css('.price::text').get()
# 将数据写入 MySQL 数据库
cnx = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='mydatabase')
cursor = cnx.cursor()
add_data = ("INSERT INTO mytable "
"(name, price) "
"VALUES (%s, %s)")
data = (name, price)
cursor.execute(add_data, data)
cnx.commit()
cursor.close()
cnx.close()
```
在这个例子中,我们首先在 start_requests 方法中指定了要爬取的 URL 列表,并使用 scrapy.Request 发送了请求。在 parse 方法中,我们使用 CSS 选择器提取了每个页面中的数据,并将其写入 MySQL 数据库中。需要注意的是,我们在每次写入数据之前都需要建立一个新的数据库连接,并在写入完成之后关闭连接。
当然,这只是一个简单的示例,实际情况中还需要考虑异常处理、数据清洗、数据去重等问题。
阅读全文