来自巴西网站的Webscrap ISBN信息

问题描述 投票:-1回答:1

我正在尝试获取一些带有漂亮汤料的标签,以使用此数据生成一个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)
beautifulsoup captcha http-error urlopen
1个回答
0
投票
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)
© www.soinside.com 2019 - 2024. All rights reserved.