Это мой первый вопрос здесь, в stackoverflow Я играю с Scrapy, и я застрял там, где хочу обновить ссылку базы данных до сканирования = 1 после того, как ссылка была сделана от Scrapy.обновить таблицу базы данных из scrapy с помощью запроса Meta
# -*- coding: utf-8 -*-
import scrapy
import scrapy.http
from scrapy.spiders import CrawlSpider, Rule
from Testing.items import Testing100Item
from scrapy.linkextractors import LinkExtractor
from scrapy.http import Response
from scrapy.http import Request
from scrapy.selector import HtmlXPathSelector
from scrapy.responsetypes import Response
import re
import MySQLdb
from MySQLdb.cursors import SSCursor
import MySQLdb.cursors
##This is the connector to Database to Read New Domains
def getdomainsfromdb():
try:
conn = MySQLdb.connect(
host="localhost",
user="root",
passwd="root",
db="Testing",
cursorclass = MySQLdb.cursors.SSCursor)
cursor = conn.cursor()
query = """
SELECT domain_id, url, id_sitemap_links
from Sitemap_links
where scanned = 0;"""
cursor.execute(query)
return cursor.fetchall()
except Exception, e:
print e
##This will update the scanned to 1
def scanned(id_sitemap_links):
try:
conn = MySQLdb.connect(
host="localhost",
user="root",
passwd="root",
db="Testing",
cursorclass = MySQLdb.cursors.SSCursor)
cursor = conn.cursor()
query = """
UPDATE Sitemap_links
set scanned = 1
where id_sitemap_links = '%s' """
cursor.execute(query, (int(id_sitemap_links),))
except Exception, e:
print e
class Testing100Spider(scrapy.Spider):
name = "testing100"
#allowed_domains = []
#start_urls =()
def start_requests(self):
for domain_id, url, id_sitemap_links in getdomainsfromdb():
yield Request(url, callback=self.parse, meta={'id_sitemap_links': id_sitemap_links})
def parse(self, response):
# domain_id = response.meta['domain_id']
id_sitemap_links = response.meta['id_sitemap_links']
scanned(id_sitemap_links)
print id_sitemap_links
# def parse(self, response):
# domain_id = Request(0)
# item = Testing100Item()
# #items = []
В это время я могу читать домен из getdomainsfromdb() функцию, но я не могу обновить идентификатор домена, который Scrapy работает над .. я могу напечатать id_sitemap_links но SQL не обновление ..
Что мне здесь не хватает? Спасибо заранее
вы спасли мою жизнь :) Я боролся с этим около 2 часов! – Marketingexpert