使用从 Beautifulsoup 中提取的 href

working with hrefs extracted from Beautifulsoup

我是一名 Python 网络爬虫初学者。

在这个项目中,我必须检索一些 hrefs 然后打印出每个 href 链接中的文本内容。到目前为止,这是我的代码:

import requests, bs4, os, webbrowser
url = 'http://www.constructeursdefrance.com/resultat/?dpt=53'
res = requests.get(url)
res.raise_for_status()

soup = bs4.BeautifulSoup(res.text,'html.parser')
for a in soup.select('.link'):
    links = a.find('a').attrs['href']

我用链接尝试了很多东西,但它会说 "unicode is not callable"。 我如何使用这些链接并最终遍历它们以提取其中的文本?

谢谢

尝试以下操作:

import requests, bs4, os, webbrowser
url = 'http://www.constructeursdefrance.com/resultat/?dpt=53'
res = requests.get(url)
res.raise_for_status()

soup = bs4.BeautifulSoup(res.text,'lxml')
links = soup.findAll('a')

for link in links:
    try:
        print link.attrs['href']
    except:
        pass

希望对您有所帮助。

你的代码差不多完成了,只需稍作改动

import requests, bs4, os, webbrowser
url = 'http://www.constructeursdefrance.com/resultat/?dpt=53'
res = requests.get(url)
res.raise_for_status()

soup = bs4.BeautifulSoup(res.text,'html.parser')
links = []
for div in soup.select('.link'):
    link = div.a.get('href')
    links.append(link)
print(links)

输出:

['http://www.constructeursdefrance.com/concept-habitat/',
 'http://www.constructeursdefrance.com/maisons-bois-cruard/',
 'http://www.constructeursdefrance.com/passiva-concept/',
 'http://www.constructeursdefrance.com/les-constructions-de-la-mayenne/',
 'http://www.constructeursdefrance.com/maisonsdenfrance53/',
 'http://www.constructeursdefrance.com/lemasson53/',
 'http://www.constructeursdefrance.com/ecb53/',
 'http://www.constructeursdefrance.com/villadeale-53/',
 'http://www.constructeursdefrance.com/habitat-plus-53/']

select('.link') 将 return 一个包含子标签 a 的 div 标签列表, 所以你可以通过 div.a 获得标签,而不是通过 div.a.get('href')

获得 href