访问深度类层次结构中的所有href链接

ivo

我正在尝试访问网站上的所有href链接,准确地说是搜索结果。我的初衷是获取所有链接,然后再进一步研究。问题是->我从网站上获得了一些链接,但没有获得搜索结果的链接。这是我的代码的一个版本。

from selenium import webdriver
from htmldom import htmldom
dom = htmldom.HtmlDom("myWebsite")
dom = dom.createDom()

p_links = dom.find("a")
for link in p_links:
    print("URL: " +link.attr("href"))

这是该特定网站的HTML屏幕。在屏幕上,我标记了将来尝试访问的href链接。我愿意提供任何帮助,无论是在Selenium,htmldom,b4soup等中。

在此处输入图片说明

Keyur Potdar

您所需要的数据随AJAX请求一起加载。因此,您无法在获取页面源代码后直接将其抓取。但是,AJAX请求将发送到以下URL:

https://open.nrw/solr/collection1/select?q=*%3A*&fl=validated_data_dict%20title%20groups%20notes%20maintainer%20metadata_modified%20res_format%20author_email%20name%20extras_opennrw_spatial%20author%20extras_opennrw_groups%20extras_opennrw_format%20license_id&wt=json&fq=-type:harvest+&sort=title_string%20asc&indent=true&rows=20

它以JSON格式返回数据。您可以使用requests模块抓取此数据。

import requests

BASE_URL = 'https://open.nrw/dataset/'

r = requests.get('https://open.nrw/solr/collection1/select?q=*%3A*&fl=validated_data_dict%20title%20groups%20notes%20maintainer%20metadata_modified%20res_format%20author_email%20name%20extras_opennrw_spatial%20author%20extras_opennrw_groups%20extras_opennrw_format%20license_id&wt=json&fq=-type:harvest+&sort=title_string%20asc&indent=true&rows=20')
data = r.json()
for item in data['response']['docs']:
    print(BASE_URL + item['name'])

输出:

https://open.nrw/dataset/mags-90-10-dezilsverhaeltnis-der-aequivalenzeinkommen-1512029759099
https://open.nrw/dataset/alkis-nutzungsarten-pro-baublock-wuppertal-w
https://open.nrw/dataset/allgemein-bildende-schulen-am-1510-nach-schulformen-schulen-schueler-und-lehrerbestand-w
https://open.nrw/dataset/altersgruppen-in-meerbusch-gesamt-meerb
https://open.nrw/dataset/amtliche-stadtkarte-wuppertal-raster-w
https://open.nrw/dataset/mais-anteil-abhaengig-erwerbstaetiger-mit-geringfuegiger-beschaeftigung-1477312040433
https://open.nrw/dataset/mags-anteil-der-stillen-reserve-nach-geschlecht-und-altersgruppen-1512033735012
https://open.nrw/dataset/mags-anteil-der-vermoegenslosen-in-nrw-nach-beruflicher-stellung-1512032087083
https://open.nrw/dataset/anzahl-kinderspielplatze-meerb
https://open.nrw/dataset/anzahl-der-sitzungen-von-rat-und-ausschussen-meerb
https://open.nrw/dataset/anzahl-medizinischer-anwendungen-den-oeffentlichen-baedern-duesseldorfs-seit-2006-d
https://open.nrw/dataset/arbeitslose-den-wohnquartieren-duesseldorf-d
https://open.nrw/dataset/arbeitsmarktstatistik-arbeitslose-gelsenkirchen-ge
https://open.nrw/dataset/arbeitsmarktstatistik-arbeitslose-nach-rechtskreisen-des-sgb-ge
https://open.nrw/dataset/arbeitsmarktstatistik-arbeitslose-nach-stadtteilen-gelsenkirchen-ge
https://open.nrw/dataset/arbeitsmarktstatistik-sgb-ii-rechtskreis-auf-stadtteilebene-gelsenkirchen-ge
https://open.nrw/dataset/arbeitsmarktstatistik-sozialversicherungspflichtige-auf-stadtteilebene-gelsenkirchen-ge
https://open.nrw/dataset/verkehrszentrale-arbeitsstellen-in-nordrhein-westfalen-1476688294843
https://open.nrw/dataset/mags-arbeitsvolumen-nach-wirtschaftssektoren-1512025235377
https://open.nrw/dataset/mais-armutsrisikoquoten-nach-geschlecht-und-migrationsstatus-der-personen-1477313317038

如您所见,这返回了前20个URL。首次加载页面时,仅显示20个项目。但是,如果向下滚动,则会加载更多内容。要获取更多项目,可以在URL中更改查询字符串参数该网址以结尾rows=20您可以更改此数字以获得所需的结果数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

列出给定类的层次结构中的所有基类?

显示SQL层次结构CTE中的所有子孙

Doxygen,图形类层次结构中没有任何显示

只要层次结构中的所有类仅使用托管资源,是否可以使用虚拟Dispose()方法?

如何通过Python API获取层次结构中的所有库存组变量?

有什么方法可以触发在Swift 4中创建层次结构中所有类的列表?

Firebase层次结构深度访问

如何在python中的类层次结构中访问(和修改)任意项目

SAP HANA列出层次结构第3级中的所有物料

在类型层次结构中的所有派生类型上调用通用方法

有效的类层次结构?

Java:深度克隆复杂的“具有”类层次结构

Ruby中的类层次结构

跳过JPA中的类层次结构级别

如何提取HTML文件中的所有链接(href)?

选择ul li层次结构中td的所有innerHTML

cp到带有符号链接的目标层次结构中?

基于各个属性/访问器的聚合设计类层次结构

EF-提取每个层次结构中特定类型表的所有记录

Jekyll:生成器,可链接到静态层次结构中的所有子页面

SystemC:如何跟踪模块层次结构中的所有信号?

列出所有父目录层次结构

在 Inox 中建模类层次结构

修改类层次结构中的方法

在分隔字符串中列出所有父层次结构,不包括最顶部的节点

TypeScript 中的类层次结构

从层次结构中检索特定类

是否可以访问 javascript 类层次结构中的所有级别?

在 C++ 中访问所有结构中的变量