- 64
- 0
用scrapy尝试爬取游戏饰品价格的爬虫,在setting文件配置好的情况下(pipeline=300),似乎pipeline不能连接到数据库(因为连简单的插入语句也不能成功执行),而且pycharm没有报错,有人能帮忙看一下哪里有问题吗?
import pymysql
class DecoratesPipeline(object):
def __init__(self):
self.conn = pymysql.connect(host="127.0.0.1", user="root", password="123456",
db='test_food', charset="utf8")
# 1.建立数据库的连接
# self.conn = pymysql.connect(host="127.0.0.1", user="root", passwd="123456", db="test_food", charset="utf8")
# 2.创建一个游标cursor,用来操作表
self.cursor = self.conn.cursor()
def process_item(self, item, spider):
# try:
# for j in range(len(item['d_name'])):
# d_name = item['d_name'][j]
# h_name = item['h_name'][j]
# # price=item['price']
# sell = item['sell'][j]
# buy = item['buy'][j]
# # 写入数据库
# sql = "INSERT INTO dd(sell,buy) VALUE (%s,%s)", (sell, buy)
# # self.conn.query(sql)
# self.cursor.execute(sql)
# # # 4.提交操作
# self.conn.commit()
# except Exception as error:
# # 出现错误打印错误日志
# log(error)
sql2 = 'INSERT INTO USER1(name, age) VALUES ("abcx", 23)'
self.cursor.execute(sql2)
self.conn.commit()
return item
def close_spider(self,spider):
self.cursor.close()
self.conn.close()### 问题描述
这个是spiders的程序
import scrapy
from decorates.items import DecoratesItem
from scrapy.http import Request
from urllib import request
import re
import win32api
import urllib
class PpigSpider(scrapy.Spider):
name = 'ppig'
allowed_domains = ['buff.163.com']
#start_urls = ['https://buff.163.com/market/goods?goods_id=1#tab=history']
def start_requests(self):
yield Request('https://buff.163.com/market/goods?goods_id=1#tab=history',
headers={'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36(KHMTL,like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0"})
def parse(self, response):
item = DecoratesItem()
item['d_name'] = response.xpath('//h1//text()').extract()[0]
item['h_name'] = response.xpath('//span/a//text()').extract()[2]
item['sell'] = response.xpath('//li[@class="selling on"]//text()').extract()[0]
item['buy'] = response.xpath('//a/span[@id="buy_num"]//text()').extract()[0]
# pat = '[1-9]\d*\.\d\d|0\.\d*[1-9]\d'
# data = re.compile(pat).findall(str(response.body))
item['d_price'] = response.xpath('//td//strong[@class="f_Strong"]"]').extract()[0]
#//td[@class="t_Left"]//strong
#//strong//text()
print(item['d_price'])
# try:
#items['price'] = re.compile(pat).findall(response + '|$')[0]
for i in range(2,10):
nexturl="https://buff.163.com/market/goods?goods_id="+str(i)+"#tab=history"
yield Request(nexturl,callback=self.parse,headers={'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36(KHMTL,like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0"})
- 共 0 条
- 全部回答
-
莫笑年少江湖梦 普通会员 1楼
首先,我们需要明确一下你的问题。"数据没有写入到数据库"是什么意思?是说你使用scrapy的爬虫爬取了数据,但是没有将这些数据写入到数据库中,还是说你已经将数据写入到了数据库,但是你的scrapy爬虫没有发现这些数据?
如果你说的是没有将数据写入到数据库中,那么可能的原因有很多,比如数据库没有开启,数据库中的数据没有被正确地写入,或者你的scrapy爬虫没有正确地写入到数据库。
如果你说的是scrapy爬虫没有发现数据,那么可能的原因有很多,比如数据库中的数据被删除了,或者你的scrapy爬虫没有正确地搜索数据库。
如果以上两种情况都不是,那么你可能需要进一步的信息来确定问题的原因。例如,你可以尝试使用scrapy的debug工具来查看你的爬虫在爬取数据时的状态,看看是否可以查看到数据库中的数据。
同时,你也可以查看你的数据库的设置,看看是否允许爬虫爬取数据库中的数据。如果数据库设置不正确,你可能需要修改数据库的设置,或者使用数据库管理工具(如MySQL Workbench,phpMyAdmin等)来查看和修改数据库中的数据。
最后,如果你确定你的scrapy爬虫没有写入到数据库,那么可能需要检查你的scrapy项目的配置,看看是否有设置阻止scrapy爬虫爬取数据库中的数据。例如,你可以查看scrapy项目的settings.py文件,看看是否有设置阻止scrapy爬虫爬取数据库中的数据。如果有,你可能需要修改这个设置。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

