【问题标题】:scrapy request form for scraping data用于抓取数据的scrapy请求表
【发布时间】:2014-03-28 07:59:16
【问题描述】:

我正在使用此代码,我正在使用 url=http://money.moneygram.com.au/forex-tools/currency-converter-widget-part

from __future__ import absolute_import
#import __init__
#from scrapy.spider import BaseSpider
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.http import Request
from scrapy.http import FormRequest
from scrapy.http import Response
from scrapy.selector import HtmlXPathSelector
import MySQLdb
class DmozSpider(CrawlSpider):
    name = "moneygram"
    allowed_domains = ["moneygram.com"]
    start_urls = ["http://money.moneygram.com.au/forex-tools/currency-converter-widget-part"]

    def parse(self,response):
           # yield FormRequest.from_response(response,formname='firstSelector',formdata="FromCurrency=USD&ToCurrency=INR&FromCurrency_dropDown=USD&ToCurrency_dropDown=INR",callback=self.parse1)
           # request_with_cookies = Request(url="http://money.moneygram.com.au",
           #                    cookies={'FromCurrency': 'USD', 'ToCurrency': 'INR'},callback=self.parse1)

            yield FormRequest.from_response(response,formname=None,formnumber=0,formpath=None,formdata="FromCurrency=AED&ToCurrency=VND&FromCurrency_dropDown=AED&ToCurrency_dropDown=VND&FromAmount=2561&ToAmount=&X-Requested-With=XMLHttpRequest",callback=self.parse1)

按要求向我发送表单数据,但给出错误

raise ValueError("No <form> element found in %s" % response)
exceptions.ValueError: No <form> element found in <200 http://money.moneygram.com.au/forex-tools/currency-converter-widget-part> 

如何将美元转换为 inr?

【问题讨论】:

    标签: html web-crawler scrapy


    【解决方案1】:

    您提到的页面不是有效的 HTML。看起来它是一个 SSI 块,应该是另一个页面的一部分。

    您的错误是因为此页面大量使用 Javascript。它没有 FormRequest.from_response 尝试使用现有表单发出请求,但该表单不存在。

    您应该处理整个页面,或者手动填写FormRequest 填充其属性,然后将其从整个页面提交到 URL。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    • 2017-09-04
    • 2013-05-23
    • 1970-01-01
    相关资源
    最近更新 更多