Web爬网:如何获取使用数据库信息的url?

2024-09-30 01:21:31 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是我的问题陈述:

我试图从http://www.aogc2.state.ar.us/AOGConline/中检索状态的所有特定信息。在做了一点研究和开发之后,我发现单个油井的信息存储在路径结构中,如下所示:

http://www.aogc2.state.ar.us/AOGConline/ED.aspx?KeyName=API_WELLNO&KeyValue=03143100280000&KeyType=STRING&DetailXML=WellDetails.xml

每个KeyValue对于每口井都是唯一的,我试图在KeyValue中推导出一个通用模式,例如在314310028000中,03代表州(阿肯色州),143代表县,但是剩余的no-10028000不一定遵循一个序列模式,因此使生活变得困难。你知道吗

有没有一种方法可以在这里获得43K+井的所有键值(我假设是来自数据库)?尝试查找从http://www.aogc2.state.ar.us/AOGConline/加载的所有源js文件,但没有一个指向所有KeyValues/Well API源目录

我使用Python Scrapy编写了下面的spider,它可以抓取一些特定的XMLURL.In需要使其通用,以便获得所有43k+井信息,但无法获得一种方法来计算出这里的所有键值

from scrapy.spider import Spider
from scrapy.selector import Selector
import codecs

class AogcSpider(Spider):
name = "aogc"
allowed_domains = ["http://www.aogc2.state.ar.us/"]
start_urls = [
    "http://www.aogc2.state.ar.us/AOGConline/ED.aspx?KeyName=API_WELLNO&KeyValue=03143100280000&KeyType=STRING&DetailXML=WellDetails.xml",
    "http://www.aogc2.state.ar.us/AOGConline/ED.aspx?KeyName=API_WELLNO&KeyValue=03143100290000&KeyType=STRING&DetailXML=WellDetails.xml",
    "http://www.aogc2.state.ar.us/AOGConline/ED.aspx?KeyName=API_WELLNO&KeyValue=03143100300000&KeyType=STRING&DetailXML=WellDetails.xml",
    "http://www.aogc2.state.ar.us/AOGConline/ED.aspx?KeyName=API_WELLNO&KeyValue=03143100310000&KeyType=STRING&DetailXML=WellDetails.xml",
    "http://www.aogc2.state.ar.us/AOGConline/ED.aspx?KeyName=API_WELLNO&KeyValue=03143100320000&KeyType=STRING&DetailXML=WellDetails.xml",
    "http://www.aogc2.state.ar.us/AOGConline/ED.aspx?KeyName=API_WELLNO&KeyValue=03143100330000&KeyType=STRING&DetailXML=WellDetails.xml"
]

def parse(self,response):
    hxs =  Selector(response)
    trnodes = hxs.xpath("//td[@class='ColumnValue']")
    filename = codecs.open("aogc_wells","a","utf-8-sig")
    filename.write("\n")
    for nodes in trnodes:
        ftext = nodes.xpath("text()").extract()
        for txt in ftext:
            filename.write(txt)
            filename.write("|")

Tags: apihttpstringwwwarusstateed

热门问题