我在学Python。我正试图用它来自动检查图书馆图书的可用性。你知道吗
我试着用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)
而且它把所有的源代码都打印出来,严重滞后了我的空闲时间!你知道吗
在它停止滞后后,我做了这样一件事:
>>> 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
我不知道为什么会出错,我确实把字符串变成了一个字符串,对吧?你知道吗
另外,我使用这个关键字是因为它就在“library branch”之前和“availability”之后。所以我想,即使它产生了大量其他冗余代码,我也能在第一行看到这本书在哪个图书馆分馆有售。你知道吗
我相信我做这件事的方式不是最有效的方式,如果你能给我指出正确的方式,或者给我看,我将不胜感激!你知道吗
很抱歉,这是一个很长的帖子,但我正在尽可能详细地介绍我的情况。谢谢你和我在一起。你知道吗
不,您没有将
string
生成Python字符串,因为您没有将str(string)
的结果赋给任何变量,因此它将丢失:变量
string
不变。试试这个:现在您有了一个
str
字符串。你知道吗另一方面,为什么不使用
BeautifulSoup
从HTML中提取数据呢?这就是它的目的,也是它擅长的。这里有一种方法:输出
相关问题 更多 >
编程相关推荐