【发布时间】:2018-11-07 15:11:20
【问题描述】:
我正在尝试抓取包含在 this website 框中的所有链接。但是,我的模式不返回任何内容。我究竟做错了什么?如果我通常寻找带有 href=True 的“a”,我不会得到我正在寻找的链接。
import requests
from bs4 import BeautifulSoup
url = 'https://www.nationalevacaturebank.nl/vacature/zoeken?query=&location=&distance=city&page=1&limit=100&sort=relevance&filters%5BcareerLevel%5D%5B%5D=Starter&filters%5BeducationLevel%5D%5B%5D=MBO'
page = requests.get(url)
soup = BeautifulSoup(page.content, 'lxml')
ahrefs = soup.find_all('a', {'class': "article-link" , 'href': True})
for a in ahrefs:
print(a.text)
【问题讨论】:
-
您到底想选择什么?
True不是超引用属性的有效值。另请注意,href是链接的强制属性(没有@href链接只是一个字符串),因此只有当它具有href属性时才需要选择链接(如果您的意思是那) -
@Andersson 即使我省略了 href (因为字符串也可以),我什么也得不到。我想要块中的所有网址。 Xpath 是
//*[@id="search-results-container"]/div/div[1]/div[10]/article/job/a和 CSS 选择器#search-results-container > div > div.search-items.ng-scope > div:nth-child(2) > article > job > a(不知道这些信息是否有帮助) -
你不能在这里使用 BeautifulSoup(动态内容)..但是你可以解析这个 json:nationalevacaturebank.nl/vacature/…
-
@t.m.adam 为什么不呢?我想刮几页,所以我不认为我想一直制作 jsons。
-
正如我所说的内容是动态的,所以你无法通过请求和 BequtifulSoup 获得它。你可以使用 Selenium,但即使那样你也不必使用 BeautifulSoup,因为 Selenium 有自己的选择器。
标签: python html web-scraping beautifulsoup python-requests