Я изучаю python. И я пытаюсь использовать его для автоматизации процесса проверки доступности библиотечной книги.Проверка наличия библиотеки с помощью beautifulsoup
Я попытался выполнить его с помощью bs4, запроса и раздела.
Это ссылка, что я пытаюсь разобрать из: [http://catalogue.nlb.gov.sg/cgi-bin/spydus.exe/FULL/EXPNOS/BIBENQ/1592917/156302298,2][1]
просмотреть исходный код, и вот отрывок из него:
<tr>
<td valign="top"><a href="/cgi-bin/spydus.exe/ENQ/EXPNOS/GENENQ/1564461?LOCX=BIPL">**Bishan Public Library**</a>
<br />
</td>
<td valign="top">
<book-location data-title="The opposite of everyone" data-branch="BIPL" data-usagelevel="001" data-coursecode="" data-language="English" data-materialtype="BOOK" data-callnumber="JAC" data-itemcategory="" data-itemstatus="" data-lastreturndate="20160322"
data-accession="B31189097E" data-defaultLoc="Adult Lending">Adult Lending</book-location>
</td>
<td valign="top"><a href="/cgi-bin/spydus.exe/ENQ/EXPNOS/BIBENQ/1564461?CGS=E*English">English</a>
<br /><a href="/cgi-bin/spydus.exe/WBT/EXPNOS/BIBENQ/1564461?CNO=JAC&CNO_TYPE=B">JAC</a>
<br />
</td>
<td valign="top">**Available**
<br />
</td>
</tr>
<tr>
<td valign="top"><a href="/cgi-bin/spydus.exe/ENQ/EXPNOS/GENENQ/1564461?LOCX=BMPL">**Bukit Merah Public Library**</a>
<br />
</td>
<td valign="top">
<book-location data-title="The opposite of everyone" data-branch="BMPL" data-usagelevel="001" data-coursecode="" data-language="English" data-materialtype="BOOK" data-callnumber="JAC" data-itemcategory="" data-itemstatus="" data-lastreturndate="20160405"
data-accession="B31189102C" data-defaultLoc="Adult Lending">Adult Lending</book-location>
</td>
<td valign="top"><a href="/cgi-bin/spydus.exe/ENQ/EXPNOS/BIBENQ/1564461?CGS=E*English">English</a>
<br /><a href="/cgi-bin/spydus.exe/WBT/EXPNOS/BIBENQ/1564461?CNO=JAC&CNO_TYPE=B">JAC</a>
<br />
</td>
<td valign="top">**Available**
<br />
</td>
</tr>
Информация, которую я пытаюсь для разбора есть библиотека, в которой доступна книга.
Вот что я сделал:
import requests, bs4
>>> res = requests.get('http://catalogue.nlb.gov.sg/cgi-bin/spydus.exe/FULL/EXPNOS/BIBENQ/1592917/156302298,2')
>>> string = bs4.BeautifulSoup(res.text)
Тогда я пытаюсь сделать строку в строку:
>>> str(string)
И напечатанное исходный код весь, и сильно отставал мой IDLE!
После того, как перестал отставать, я сделал это:
>>> keyword = '<a href="/cgi-bin/spydus.exe/ENQ/EXPNOS/GENENQ/1564461?LOCX='
>>> string.partition('keyword') Traceback (most recent call last): File "<pyshell#8>", line 1, in <module>
string.partition('keyword') TypeError: 'NoneType' object is not callable
Я не знаю, почему это вызвало ошибку, я сделать строку в строку, не так ли?
Кроме того, я использовал это ключевое слово, потому что оно находится прямо перед «ветвью библиотеки» и сразу после «доступности». Поэтому я подумал, что даже если он выдаст много другого избыточного кода, я смогу увидеть в первой строке, в какой библиотеке находится книга.
Я уверен, что я сделал это не самым эффективным способом, и если бы вы могли указать мне на правильный путь или показать его мне, я буду чрезвычайно благодарен!
Прошу прощения, это очень длинный пост, но я стараюсь как можно подробнее рассказать о своей ситуации. Спасибо, что согласились со мной.