gpt4 book ai didi

python - 如何使用 BeautifulSoup 从期刊版本列表中抓取 pdf 网址?

转载 作者:行者123 更新时间:2023-12-01 06:27:12 25 4
gpt4 key购买 nike

我一直在尝试从已有的期刊卷 URL 中抓取所有 pdf URL。

这是期刊卷列表:

add_url = ['http://www.quimicanova.sbq.org.br/default.asp?ed=1',
'http://www.quimicanova.sbq.org.br/default.asp?ed=10',
'http://www.quimicanova.sbq.org.br/default.asp?ed=100',
'http://www.quimicanova.sbq.org.br/default.asp?ed=101',
'http://www.quimicanova.sbq.org.br/default.asp?ed=102',
'http://www.quimicanova.sbq.org.br/default.asp?ed=103',
'http://www.quimicanova.sbq.org.br/default.asp?ed=104',
'http://www.quimicanova.sbq.org.br/default.asp?ed=105',
'http://www.quimicanova.sbq.org.br/default.asp?ed=106',
'http://www.quimicanova.sbq.org.br/default.asp?ed=107',
'http://www.quimicanova.sbq.org.br/default.asp?ed=108',
'http://www.quimicanova.sbq.org.br/default.asp?ed=109',
'http://www.quimicanova.sbq.org.br/default.asp?ed=11',
'http://www.quimicanova.sbq.org.br/default.asp?ed=110',
'http://www.quimicanova.sbq.org.br/default.asp?ed=111',
'http://www.quimicanova.sbq.org.br/default.asp?ed=112',
'http://www.quimicanova.sbq.org.br/default.asp?ed=113',
'http://www.quimicanova.sbq.org.br/default.asp?ed=114',
'http://www.quimicanova.sbq.org.br/default.asp?ed=115',
'http://www.quimicanova.sbq.org.br/default.asp?ed=116',
'http://www.quimicanova.sbq.org.br/default.asp?ed=117',
'http://www.quimicanova.sbq.org.br/default.asp?ed=118',
'http://www.quimicanova.sbq.org.br/default.asp?ed=119',
'http://www.quimicanova.sbq.org.br/default.asp?ed=12',
'http://www.quimicanova.sbq.org.br/default.asp?ed=120',
'http://www.quimicanova.sbq.org.br/default.asp?ed=121',
'http://www.quimicanova.sbq.org.br/default.asp?ed=122',
'http://www.quimicanova.sbq.org.br/default.asp?ed=123',
'http://www.quimicanova.sbq.org.br/default.asp?ed=124',
'http://www.quimicanova.sbq.org.br/default.asp?ed=125',
'http://www.quimicanova.sbq.org.br/default.asp?ed=126',
'http://www.quimicanova.sbq.org.br/default.asp?ed=127',
'http://www.quimicanova.sbq.org.br/default.asp?ed=128',
'http://www.quimicanova.sbq.org.br/default.asp?ed=129',
'http://www.quimicanova.sbq.org.br/default.asp?ed=13',
'http://www.quimicanova.sbq.org.br/default.asp?ed=130',
'http://www.quimicanova.sbq.org.br/default.asp?ed=131',
'http://www.quimicanova.sbq.org.br/default.asp?ed=132',
'http://www.quimicanova.sbq.org.br/default.asp?ed=133',
'http://www.quimicanova.sbq.org.br/default.asp?ed=134',
'http://www.quimicanova.sbq.org.br/default.asp?ed=135',
'http://www.quimicanova.sbq.org.br/default.asp?ed=136',
'http://www.quimicanova.sbq.org.br/default.asp?ed=137',
'http://www.quimicanova.sbq.org.br/default.asp?ed=138',
'http://www.quimicanova.sbq.org.br/default.asp?ed=139',
'http://www.quimicanova.sbq.org.br/default.asp?ed=14',
'http://www.quimicanova.sbq.org.br/default.asp?ed=140',
'http://www.quimicanova.sbq.org.br/default.asp?ed=141',
'http://www.quimicanova.sbq.org.br/default.asp?ed=142',
'http://www.quimicanova.sbq.org.br/default.asp?ed=143',
'http://www.quimicanova.sbq.org.br/default.asp?ed=144',
'http://www.quimicanova.sbq.org.br/default.asp?ed=145',
'http://www.quimicanova.sbq.org.br/default.asp?ed=146',
'http://www.quimicanova.sbq.org.br/default.asp?ed=147',
'http://www.quimicanova.sbq.org.br/default.asp?ed=148',
'http://www.quimicanova.sbq.org.br/default.asp?ed=149',
'http://www.quimicanova.sbq.org.br/default.asp?ed=15',
'http://www.quimicanova.sbq.org.br/default.asp?ed=150',
'http://www.quimicanova.sbq.org.br/default.asp?ed=151',
'http://www.quimicanova.sbq.org.br/default.asp?ed=152',
'http://www.quimicanova.sbq.org.br/default.asp?ed=153',
'http://www.quimicanova.sbq.org.br/default.asp?ed=154',
'http://www.quimicanova.sbq.org.br/default.asp?ed=155',
'http://www.quimicanova.sbq.org.br/default.asp?ed=156',
'http://www.quimicanova.sbq.org.br/default.asp?ed=157',
'http://www.quimicanova.sbq.org.br/default.asp?ed=158',
'http://www.quimicanova.sbq.org.br/default.asp?ed=159',
'http://www.quimicanova.sbq.org.br/default.asp?ed=16',
'http://www.quimicanova.sbq.org.br/default.asp?ed=160',
'http://www.quimicanova.sbq.org.br/default.asp?ed=161',
'http://www.quimicanova.sbq.org.br/default.asp?ed=162',
'http://www.quimicanova.sbq.org.br/default.asp?ed=163',
'http://www.quimicanova.sbq.org.br/default.asp?ed=164',
'http://www.quimicanova.sbq.org.br/default.asp?ed=165',
'http://www.quimicanova.sbq.org.br/default.asp?ed=166',
'http://www.quimicanova.sbq.org.br/default.asp?ed=167',
'http://www.quimicanova.sbq.org.br/default.asp?ed=168',
'http://www.quimicanova.sbq.org.br/default.asp?ed=169',
'http://www.quimicanova.sbq.org.br/default.asp?ed=17',
'http://www.quimicanova.sbq.org.br/default.asp?ed=170',
'http://www.quimicanova.sbq.org.br/default.asp?ed=171',
'http://www.quimicanova.sbq.org.br/default.asp?ed=172',
'http://www.quimicanova.sbq.org.br/default.asp?ed=173',
'http://www.quimicanova.sbq.org.br/default.asp?ed=174',
'http://www.quimicanova.sbq.org.br/default.asp?ed=175',
'http://www.quimicanova.sbq.org.br/default.asp?ed=176',
'http://www.quimicanova.sbq.org.br/default.asp?ed=177',
'http://www.quimicanova.sbq.org.br/default.asp?ed=178',
'http://www.quimicanova.sbq.org.br/default.asp?ed=179',
'http://www.quimicanova.sbq.org.br/default.asp?ed=18',
'http://www.quimicanova.sbq.org.br/default.asp?ed=180',
'http://www.quimicanova.sbq.org.br/default.asp?ed=181',
'http://www.quimicanova.sbq.org.br/default.asp?ed=182',
'http://www.quimicanova.sbq.org.br/default.asp?ed=183',
'http://www.quimicanova.sbq.org.br/default.asp?ed=184',
'http://www.quimicanova.sbq.org.br/default.asp?ed=185',
'http://www.quimicanova.sbq.org.br/default.asp?ed=186',
'http://www.quimicanova.sbq.org.br/default.asp?ed=187',
'http://www.quimicanova.sbq.org.br/default.asp?ed=188',
'http://www.quimicanova.sbq.org.br/default.asp?ed=189',
'http://www.quimicanova.sbq.org.br/default.asp?ed=19',
'http://www.quimicanova.sbq.org.br/default.asp?ed=190',
'http://www.quimicanova.sbq.org.br/default.asp?ed=191',
'http://www.quimicanova.sbq.org.br/default.asp?ed=192',
'http://www.quimicanova.sbq.org.br/default.asp?ed=193',
'http://www.quimicanova.sbq.org.br/default.asp?ed=194',
'http://www.quimicanova.sbq.org.br/default.asp?ed=195',
'http://www.quimicanova.sbq.org.br/default.asp?ed=196',
'http://www.quimicanova.sbq.org.br/default.asp?ed=197',
'http://www.quimicanova.sbq.org.br/default.asp?ed=198',
'http://www.quimicanova.sbq.org.br/default.asp?ed=199',
'http://www.quimicanova.sbq.org.br/default.asp?ed=2',
'http://www.quimicanova.sbq.org.br/default.asp?ed=20',
'http://www.quimicanova.sbq.org.br/default.asp?ed=200',
'http://www.quimicanova.sbq.org.br/default.asp?ed=201',
'http://www.quimicanova.sbq.org.br/default.asp?ed=202',
'http://www.quimicanova.sbq.org.br/default.asp?ed=203',
'http://www.quimicanova.sbq.org.br/default.asp?ed=204',
'http://www.quimicanova.sbq.org.br/default.asp?ed=205',
'http://www.quimicanova.sbq.org.br/default.asp?ed=206',
'http://www.quimicanova.sbq.org.br/default.asp?ed=207',
'http://www.quimicanova.sbq.org.br/default.asp?ed=208',
'http://www.quimicanova.sbq.org.br/default.asp?ed=209',
'http://www.quimicanova.sbq.org.br/default.asp?ed=21',
'http://www.quimicanova.sbq.org.br/default.asp?ed=210',
'http://www.quimicanova.sbq.org.br/default.asp?ed=211',
'http://www.quimicanova.sbq.org.br/default.asp?ed=212',
'http://www.quimicanova.sbq.org.br/default.asp?ed=213',
'http://www.quimicanova.sbq.org.br/default.asp?ed=214',
'http://www.quimicanova.sbq.org.br/default.asp?ed=215',
'http://www.quimicanova.sbq.org.br/default.asp?ed=216',
'http://www.quimicanova.sbq.org.br/default.asp?ed=217',
'http://www.quimicanova.sbq.org.br/default.asp?ed=218',
'http://www.quimicanova.sbq.org.br/default.asp?ed=219',
'http://www.quimicanova.sbq.org.br/default.asp?ed=22',
'http://www.quimicanova.sbq.org.br/default.asp?ed=220',
'http://www.quimicanova.sbq.org.br/default.asp?ed=221',
'http://www.quimicanova.sbq.org.br/default.asp?ed=222',
'http://www.quimicanova.sbq.org.br/default.asp?ed=223',
'http://www.quimicanova.sbq.org.br/default.asp?ed=224',
'http://www.quimicanova.sbq.org.br/default.asp?ed=225',
'http://www.quimicanova.sbq.org.br/default.asp?ed=227',
'http://www.quimicanova.sbq.org.br/default.asp?ed=23',
'http://www.quimicanova.sbq.org.br/default.asp?ed=231',
'http://www.quimicanova.sbq.org.br/default.asp?ed=232',
'http://www.quimicanova.sbq.org.br/default.asp?ed=233',
'http://www.quimicanova.sbq.org.br/default.asp?ed=234',
'http://www.quimicanova.sbq.org.br/default.asp?ed=235',
'http://www.quimicanova.sbq.org.br/default.asp?ed=236',
'http://www.quimicanova.sbq.org.br/default.asp?ed=237',
'http://www.quimicanova.sbq.org.br/default.asp?ed=238',
'http://www.quimicanova.sbq.org.br/default.asp?ed=239',
'http://www.quimicanova.sbq.org.br/default.asp?ed=24',
'http://www.quimicanova.sbq.org.br/default.asp?ed=240',
'http://www.quimicanova.sbq.org.br/default.asp?ed=241',
'http://www.quimicanova.sbq.org.br/default.asp?ed=242',
'http://www.quimicanova.sbq.org.br/default.asp?ed=243',
'http://www.quimicanova.sbq.org.br/default.asp?ed=244',
'http://www.quimicanova.sbq.org.br/default.asp?ed=245',
'http://www.quimicanova.sbq.org.br/default.asp?ed=246',
'http://www.quimicanova.sbq.org.br/default.asp?ed=247',
'http://www.quimicanova.sbq.org.br/default.asp?ed=248',
'http://www.quimicanova.sbq.org.br/default.asp?ed=249',
'http://www.quimicanova.sbq.org.br/default.asp?ed=25',
'http://www.quimicanova.sbq.org.br/default.asp?ed=250',
'http://www.quimicanova.sbq.org.br/default.asp?ed=251',
'http://www.quimicanova.sbq.org.br/default.asp?ed=252',
'http://www.quimicanova.sbq.org.br/default.asp?ed=253',
'http://www.quimicanova.sbq.org.br/default.asp?ed=254',
'http://www.quimicanova.sbq.org.br/default.asp?ed=255',
'http://www.quimicanova.sbq.org.br/default.asp?ed=256',
'http://www.quimicanova.sbq.org.br/default.asp?ed=258',
'http://www.quimicanova.sbq.org.br/default.asp?ed=259',
'http://www.quimicanova.sbq.org.br/default.asp?ed=26',
'http://www.quimicanova.sbq.org.br/default.asp?ed=260',
'http://www.quimicanova.sbq.org.br/default.asp?ed=261',
'http://www.quimicanova.sbq.org.br/default.asp?ed=262',
'http://www.quimicanova.sbq.org.br/default.asp?ed=263',
'http://www.quimicanova.sbq.org.br/default.asp?ed=264',
'http://www.quimicanova.sbq.org.br/default.asp?ed=265',
'http://www.quimicanova.sbq.org.br/default.asp?ed=266',
'http://www.quimicanova.sbq.org.br/default.asp?ed=267',
'http://www.quimicanova.sbq.org.br/default.asp?ed=268',
'http://www.quimicanova.sbq.org.br/default.asp?ed=269',
'http://www.quimicanova.sbq.org.br/default.asp?ed=27',
'http://www.quimicanova.sbq.org.br/default.asp?ed=270',
'http://www.quimicanova.sbq.org.br/default.asp?ed=271',
'http://www.quimicanova.sbq.org.br/default.asp?ed=273',
'http://www.quimicanova.sbq.org.br/default.asp?ed=274',
'http://www.quimicanova.sbq.org.br/default.asp?ed=275',
'http://www.quimicanova.sbq.org.br/default.asp?ed=276',
'http://www.quimicanova.sbq.org.br/default.asp?ed=277',
'http://www.quimicanova.sbq.org.br/default.asp?ed=278',
'http://www.quimicanova.sbq.org.br/default.asp?ed=279',
'http://www.quimicanova.sbq.org.br/default.asp?ed=28',
'http://www.quimicanova.sbq.org.br/default.asp?ed=280',
'http://www.quimicanova.sbq.org.br/default.asp?ed=281',
'http://www.quimicanova.sbq.org.br/default.asp?ed=282',
'http://www.quimicanova.sbq.org.br/default.asp?ed=283',
'http://www.quimicanova.sbq.org.br/default.asp?ed=284',
'http://www.quimicanova.sbq.org.br/default.asp?ed=29',
'http://www.quimicanova.sbq.org.br/default.asp?ed=3',
'http://www.quimicanova.sbq.org.br/default.asp?ed=30',
'http://www.quimicanova.sbq.org.br/default.asp?ed=31',
'http://www.quimicanova.sbq.org.br/default.asp?ed=32',
'http://www.quimicanova.sbq.org.br/default.asp?ed=33',
'http://www.quimicanova.sbq.org.br/default.asp?ed=34',
'http://www.quimicanova.sbq.org.br/default.asp?ed=35',
'http://www.quimicanova.sbq.org.br/default.asp?ed=36',
'http://www.quimicanova.sbq.org.br/default.asp?ed=37',
'http://www.quimicanova.sbq.org.br/default.asp?ed=38',
'http://www.quimicanova.sbq.org.br/default.asp?ed=39',
'http://www.quimicanova.sbq.org.br/default.asp?ed=40',
'http://www.quimicanova.sbq.org.br/default.asp?ed=41',
'http://www.quimicanova.sbq.org.br/default.asp?ed=42',
'http://www.quimicanova.sbq.org.br/default.asp?ed=43',
'http://www.quimicanova.sbq.org.br/default.asp?ed=44',
'http://www.quimicanova.sbq.org.br/default.asp?ed=45',
'http://www.quimicanova.sbq.org.br/default.asp?ed=46',
'http://www.quimicanova.sbq.org.br/default.asp?ed=47',
'http://www.quimicanova.sbq.org.br/default.asp?ed=48',
'http://www.quimicanova.sbq.org.br/default.asp?ed=49',
'http://www.quimicanova.sbq.org.br/default.asp?ed=5',
'http://www.quimicanova.sbq.org.br/default.asp?ed=50',
'http://www.quimicanova.sbq.org.br/default.asp?ed=51',
'http://www.quimicanova.sbq.org.br/default.asp?ed=52',
'http://www.quimicanova.sbq.org.br/default.asp?ed=53',
'http://www.quimicanova.sbq.org.br/default.asp?ed=54',
'http://www.quimicanova.sbq.org.br/default.asp?ed=55',
'http://www.quimicanova.sbq.org.br/default.asp?ed=56',
'http://www.quimicanova.sbq.org.br/default.asp?ed=57',
'http://www.quimicanova.sbq.org.br/default.asp?ed=58',
'http://www.quimicanova.sbq.org.br/default.asp?ed=59',
'http://www.quimicanova.sbq.org.br/default.asp?ed=60',
'http://www.quimicanova.sbq.org.br/default.asp?ed=61',
'http://www.quimicanova.sbq.org.br/default.asp?ed=62',
'http://www.quimicanova.sbq.org.br/default.asp?ed=63',
'http://www.quimicanova.sbq.org.br/default.asp?ed=64',
'http://www.quimicanova.sbq.org.br/default.asp?ed=65',
'http://www.quimicanova.sbq.org.br/default.asp?ed=66',
'http://www.quimicanova.sbq.org.br/default.asp?ed=67',
'http://www.quimicanova.sbq.org.br/default.asp?ed=68',
'http://www.quimicanova.sbq.org.br/default.asp?ed=69',
'http://www.quimicanova.sbq.org.br/default.asp?ed=70',
'http://www.quimicanova.sbq.org.br/default.asp?ed=71',
'http://www.quimicanova.sbq.org.br/default.asp?ed=72',
'http://www.quimicanova.sbq.org.br/default.asp?ed=73',
'http://www.quimicanova.sbq.org.br/default.asp?ed=74',
'http://www.quimicanova.sbq.org.br/default.asp?ed=75',
'http://www.quimicanova.sbq.org.br/default.asp?ed=76',
'http://www.quimicanova.sbq.org.br/default.asp?ed=77',
'http://www.quimicanova.sbq.org.br/default.asp?ed=78',
'http://www.quimicanova.sbq.org.br/default.asp?ed=79',
'http://www.quimicanova.sbq.org.br/default.asp?ed=8',
'http://www.quimicanova.sbq.org.br/default.asp?ed=80',
'http://www.quimicanova.sbq.org.br/default.asp?ed=81',
'http://www.quimicanova.sbq.org.br/default.asp?ed=82',
'http://www.quimicanova.sbq.org.br/default.asp?ed=83',
'http://www.quimicanova.sbq.org.br/default.asp?ed=84',
'http://www.quimicanova.sbq.org.br/default.asp?ed=85',
'http://www.quimicanova.sbq.org.br/default.asp?ed=86',
'http://www.quimicanova.sbq.org.br/default.asp?ed=87',
'http://www.quimicanova.sbq.org.br/default.asp?ed=88',
'http://www.quimicanova.sbq.org.br/default.asp?ed=89',
'http://www.quimicanova.sbq.org.br/default.asp?ed=9',
'http://www.quimicanova.sbq.org.br/default.asp?ed=90',
'http://www.quimicanova.sbq.org.br/default.asp?ed=91',
'http://www.quimicanova.sbq.org.br/default.asp?ed=92',
'http://www.quimicanova.sbq.org.br/default.asp?ed=93',
'http://www.quimicanova.sbq.org.br/default.asp?ed=94',
'http://www.quimicanova.sbq.org.br/default.asp?ed=95',
'http://www.quimicanova.sbq.org.br/default.asp?ed=96',
'http://www.quimicanova.sbq.org.br/default.asp?ed=97',
'http://www.quimicanova.sbq.org.br/default.asp?ed=98',
'http://www.quimicanova.sbq.org.br/default.asp?ed=99']

分析每个 url 的 DOM,我注意到所有 pdf 都具有相同的相似性:

audiencia_pdf.asp?aid2

我尝试编写的从每卷中获取所有这些 pdf 的代码如下:

for i in add_url:
pag = requests.get(i)
parser = BeautifulSoup(pag.text, "html.parser")
doi_list = []
for a in parser.find_all("a", href=True):
if "audiencia_pdf.asp?aid2" in a["href"]:
doi_list.append(a["href"])
add_doi = []
for i in doi_list:
html2 = "http://www.quimicanova.sbq.org.br/" + i
add_doi.append(html2)

但是为什么我只得到几个 pdf 网址,而不是每个卷网址中的全部?

OUTPUT
['http://www.quimicanova.sbq.org.br/audiencia_pdf.asp?aid2=99&nomeArquivo=v05_n3_00-sumario.pdf',
'http://www.quimicanova.sbq.org.br/audiencia_pdf.asp?aid2=2778&nomeArquivo=Vol5No3_58_v05_n3_(1).pdf',
'http://www.quimicanova.sbq.org.br/audiencia_pdf.asp?aid2=2785&nomeArquivo=Vol5No3_60_v05_n3_(2).pdf',
'http://www.quimicanova.sbq.org.br/audiencia_pdf.asp?aid2=2792&nomeArquivo=Vol5No3_67_v05_n3_(3).pdf',
'http://www.quimicanova.sbq.org.br/audiencia_pdf.asp?aid2=2802&nomeArquivo=Vol5No3_104_v05_n3_(4).pdf',
'http://www.quimicanova.sbq.org.br/audiencia_pdf.asp?aid2=2806&nomeArquivo=Vol5No3_106_v05_n3_(5).pdf',
'http://www.quimicanova.sbq.org.br/audiencia_pdf.asp?aid2=2809&nomeArquivo=Vol5No3_107_v05_n3_editorial.pdf']

我是 Python 新手,因此对于任何明显的错误我提前表示歉意。

最佳答案

我刚刚尝试了您列表中的前两个网址:

import requests
from bs4 import BeautifulSoup
import re

add_url = ['http://www.quimicanova.sbq.org.br/default.asp?ed=1',
'http://www.quimicanova.sbq.org.br/default.asp?ed=10',]

pat = 'http://www.quimicanova.sbq.org.br/'

add_doi = []
for i in add_url:
html = requests.get(i).text
soup = BeautifulSoup(html, "html.parser")
add_doi.extend([pat+i['href'] for i in soup.find_all('a', href = re.compile(r'audiencia_pdf.asp\?aid2'))])

您会得到 103 个结果。

主要思想是从一个空的结果列表 add_doi 开始,然后通过添加来自抓取的网址的新结果来扩展它。

脚本的核心是最后一行,它查找包含模式 audiencia_pdf.asp\?aid2 的所有 href。

关于python - 如何使用 BeautifulSoup 从期刊版本列表中抓取 pdf 网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60077070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com