我试图用scrapy收集大学的教授们。来自其目录的联系信息。由于我无法发布超过2个链接,因此我将所有链接都放在following picture中。
我从下拉菜单中设置姓氏等于,如图所示。然后我按姓氏搜索所有教授。
通常,网址会有来自其他大学的一些模式'网站。但是,对于这个,原始URL是(1)。当我搜索' An'作为姓氏。好像' An'被529385FD5FF90A198625819E002B8B41取代?我不确定。有什么方法可以获得我需要发送的URL作为请求吗?我的意思是,这次我搜索了一个'。如果我像李一样搜索另一个姓氏。这将是另一个要求。他们是不规则的。我无法找到一种模式。
答案 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)