Правильно ли работает python scrapy на localhost? - PullRequest
1 голос
/ 04 февраля 2012

Я написал паука-скрапа, чтобы очистить некоторые HTML-теги.Теперь проблема в том, что этот паук отлично работает для URL, который работает в Интернете, но не для URL, который находится на localhost.Я имею в виду, что паук выдает ошибку для URL-адреса ресурса на локальном компьютере, даже если URL-адрес совершенно правильный и работает правильно для того же ресурса, когда URL-адрес для работающего сайта.Может кто-нибудь очистить это мое сомнение?

    def parse(self, response):
    hxs = HtmlXPathSelector(response)
    con = MySQLdb.connect(host="localhost",
                          user = "username",
                          passwd="psswd",
                          db ="dbname")
    cur = con.cursor()
    title = hxs.select("//h3")[0].extract()
    desc = hxs.select("//h2").extract()
    a = hxs.select("//meta").extract()
    cur.execute("""Insert into heads(h2) Values(%s )""",(a))
    con.commit()
    con.close()

1 Ответ

1 голос
/ 04 февраля 2012

Ошибка

exceptions.IndexError: list index out of range

в этой строке

title = hxs.select("//h3")[0].extract() 

указывает, что список hxs.select("//h3") пуст ([]) с момента попытки доступа к первому элементу (индекс 0) с hxs.select("//h3")[0] использует индекс, который, по словам Python, находится вне диапазона.

HTML-код, который вы анализируете, по-видимому, не имеет <h3> тегов.


Кроме того, после исправлениявышеупомянутая ошибка, вам нужно поставить запятую после a в (a,):

cur.execute("""Insert into heads(h2) Values(%s )""",(a,))

(a) оценивается как a, тогда как (a,) представляет кортеж с 1элемент внутри.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...