如何从加密网址抓取数据?

时间:2017-09-17 08:14:46

标签: forms url scrapy scrapy-spider

我试图用scrapy收集大学的教授们。来自其目录的联系信息。由于我无法发布超过2个链接,因此我将所有链接都放在following picture中。

我从下拉菜单中设置姓氏等于,如图所示。然后我按姓氏搜索所有教授。

通常,网址会有来自其他大学的一些模式'网站。但是,对于这个,原始URL是(1)。当我搜索' An'作为姓氏。好像' An'被529385FD5FF90A198625819E002B8B41取代?我不确定。有什么方法可以获得我需要发送的URL作为请求吗?我的意思是,这次我搜索了一个'。如果我像李一样搜索另一个姓氏。这将是另一个要求。他们是不规则的。我无法找到一种模式。

1 个答案:

答案 0 :(得分:0)

刮刀并不像你想象的那么复杂。它只是从表单进行POST调用,并返回一个GET请求。以下工作

import scrapy
from scrapy.utils.response import open_in_browser

class univSpider(scrapy.Spider):
    name = "univ"
    start_urls = ["http://appl103.lsu.edu/dir003.nsf/(NoteID)/5903C096337C2AA28625819E0038E3E4?OpenDocument"]

    def parse(self, response):
        yield FormRequest.from_response(response, formname="_DIRVNAM", formdata={"LastName": "Lalwani"},callback = self.search_result)

    def search_result(self, response):
        open_in_browser(response)
        print(response.body)