scrapy 从具有搜索结果限制的搜索栏中抓取所有可能的结果

5hcedyr0  于 2022-12-13  发布在  其他
关注(0)|答案(2)|浏览(110)

试图用Python从这个网站上抓取所有的名字:
https://profile.tmb.state.tx.us/Search.aspx?9e94dec6-c7e7-4054-b5fb-20a1fcdbab53
问题是它将每次搜索限制在前50个结果。
由于姓氏搜索允许通配符,我尝试使用一个搜索结果来缩小后续搜索结果的范围(使用前缀)。但是,当50个以上的人具有相同的姓氏时,这种方法就变得困难了。
有没有其他的想法如何得到每一个可能的名字从这个网站?谢谢!!

mlnl4t2r

mlnl4t2r1#

从请求和JS来看,这个限制似乎是服务器端的。我看不出有任何方法可以检索到超过50个结果。
暴力是我认为你能抓取这个站点的唯一方法,而且它不是那么微不足道。你需要生成越来越具体的查询,直到响应少于50个结果。
对于每一个长度的组合,例如从a开始,你可以搜索a*。如果结果少于50个,就刮取它们并继续下一个组合。否则你需要刮取以a开始的所有长度为两个字符的组合:aa*ab*ac*等等。
我肯定有专门的术语,但我不知道!

5n0oy7gb

5n0oy7gb2#

我认为用char递减会更好。比如AAB -〉AAA。你会发现所有的名字都是微不足道的解决方案,但它会花费很多时间。为了优化你可以使用无头浏览器。

相关问题