来自巴西网站的Webscrap ISBN信息

时间:2019-12-15 14:14:40

标签: beautifulsoup captcha http-error urlopen

我正在尝试获取一些带有漂亮汤的标签,以使用此数据生成一个bibtex条目。

从浏览器访问时,ISBN巴西站点显示有关该ISBN的信息。但是,当我尝试使用urlopen和请求时,它给了我一个HTTPError代码500。在浏览器中发生了这种情况,只能通过关闭选项卡并在另一个选项卡中打开相同的链接来解决。

网站要求提供验证码。我认为第一个搜索需要回答验证码,而其他搜索,只需更改url中的isbn即可。

此后,当您单击“ link + isbn”时,将显示有关该书的信息。我正在尝试使用此“ link + isbn”将beautifoul汤用作废料。

有效的链接:http://www.isbn.bn.br/website/consulta/cadastro/isbn/9788521208037-((由于验证码,请在“ www.isbn。... / cadastro”域中进行首次搜索)

我尝试了一些代码,现在我只是想获取网站的html 而不会出现错误500。

import sys
import urllib
from urllib.request import Request, urlopen
from bs4 import BeautifulSoup

BRbase = 'http://www.isbn.bn.br/website/consulta/cadastro/isbn/'

Lista_ISBN = ['9788542209402',
              '9788542206937',
              '9788521208037']

for isbn in Lista_ISBN:
    page = BRbase + isbn
    url = Request(page, headers={'User-Agent': 'Mozilla/5.0'})
    html = urlopen(url).read()
    #code to beautiful soup
    try:
        #code to beautiful soup and generate bibtex
        print(page)
        print(html)

    except:
        print('ISBN {} não encontrado'.format(isbn))
sys.exit(1)

1 个答案:

答案 0 :(得分:1)

import requests
from bs4 import BeautifulSoup

headers = {"Cookie": 'JSESSIONID=60F8CDFBD408299B40C7E7C2459DC624'}

isbn = ['9788542209402', '9788542206937', '9788521208037']

for item in isbn:
    print(f"{'*'*20}Extracting ISBN# {item}{'*'*20}")
    r = requests.get(
        f"http://www.isbn.bn.br/website/consulta/cadastro/isbn/{item}", headers=headers)
    soup = BeautifulSoup(r.text, 'html.parser')
    for item in soup.findAll('strong')[2:10]:
        print(item.parent.get_text(strip=True))

输出:

********************Extracting ISBN# 9788542209402********************
ISBN978-85-422-0940-2
TítuloSPQR
Edição1
Ano Edição2017
Tipo de SuportePapel
Páginas448
Editor(a)Planeta
ParticipaçõesMary Beard ( Autor)Luiz Gil Reyes (Tradutor)
********************Extracting ISBN# 9788542206937********************
ISBN978-85-422-0693-7
TítuloEm nome de Roma
Edição1
Ano Edição2016
Tipo de SuportePapel
Páginas560
Editor(a)Planeta
ParticipaçõesAdrian Goldsworthy ( Autor)Claudio Blanc (Tradutor)
********************Extracting ISBN# 9788521208037********************
ISBN978-85-212-0803-7
TítuloCurso de física básica: ótica, relatividade e física quântica
Edição2
Ano Edição2014
Tipo de SuportePapel
Páginas0
Editor(a)Blucher
ParticipaçõesH. Moysés Nussenzveig ( Autor)