python - 将scrapy结果保存到mysql
问题描述
我找到了其他答案,但它不起作用。所以这是我的代码:
import scrapy
import pymysql.cursors
# Connect to the database
connection = pymysql.connect(host='localhost',
user='root',
password='Kradz579032!!',
db='db',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
class QuotesSpider(scrapy.Spider):
name = "quotes"
def start_requests(self):
urls = [
'https://www.banggood.com/Wholesale-RC-Helicopter-c-264.html',
'https://www.banggood.com/Wholesale-RC-Quadcopters-c-1848.html',
]
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
for quote in response.css('.good_box_min'):
yield {
'producttitle': response.css('a.middle_product_text_170717::text').extract(),
'productlink': response.css('a.middle_product_text_170717::attr(href)').extract(),
'productprice': response.css('span.price.wh_cn::text').extract(),
#'text': quote.css('span.text::text').extract_first(),
#'author': quote.css('small.author::text').extract_first(),
#'tags': quote.css('div.tags a.tag::text').extract(),
}
next_page = response.css('a#listNextPage::attr(href)').extract_first()
if next_page is not None:
next_page = response.urljoin(next_page)
yield scrapy.Request(next_page, callback=self.parse)
try:
with connection.cursor() as cursor:
sql = "INSERT INTO `banggood` (`producttitle`, `productlink`, `productprice`) VALUES (%s, %s, %s)"
cursor.execute(sql, ('title', 'productlink', 'productprice'))
connection.commit()
finally:
connection.close()
我不知道如何将所有scrapy抓取的数据插入mysql数据库。请告诉我如何以正确的方式做到这一点。
解决方案
推荐阅读
- javascript - DOM 元素同时存在于两个地方?(通过同步)
- javascript - 如何修复图像重叠引导
- node.js - 重新排列嵌套 json 中的键和值
- sql - 相同的结构 - DDS 与 DDL - 文件和级别 ID
- ms-office - 如何使用 power bi 获取给定月份的有效租金详细信息
- java - 是否可以从其终结器跟踪对象,以检测不同对象的终结器对对象的意外复活?
- python-3.6 - Python 3 读取文件并计算文件中的行数
- c# - 我无法访问在数组中实例化的派生类方法
- python - 如何在烧瓶中接收来自 AJAX GET 调用的值?
- python - 如何将列表与列表列表中的常见元素合并?