最简单的爬取HTML表格的方法是使用pandas.read_html(url)
。对于下面的URL,我可以获取其中的所有表格
import pandas as pd
url="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=3944788.PN.&OS=PN/3944788&RS=PN/3944788"
df=pd.read_html(url)
从上述网址中,我只需要这个特定的信息。
Current U.S. Class: 235/54F
考虑将上述的df
视为一个列表,我编写了以下代码以获取特定信息
myitem="Current U.S. Class:"
for i in range(len(df)):
if myitem in str(df[i]):
ClassTitle=''.join(df[i][0])
ClassNumber=''.join(df[i][1])
if ';' in ClassTitle:
ClassTitle=ClassTitle.rsplit(':')
print(ClassTitle[0])
if ';' in ClassNumber:
ClassNumber=ClassNumber.rsplit(';')
if ',' in ClassTitle:
ClassTitle=ClassTitle.rsplit(',')
print(ClassTitle[0])
if ',' in ClassNumber:
ClassNumber=ClassNumber.rsplit(',')
但是,对于某些URL,这有时可以正常工作,有时也包括其他类别的详细信息,如当前CPC类别
和当前国际类别
。我还尝试过使用BeautifulSoap
和查看页面源代码
功能,但我不确定如何提及类别。
find_parent()
方法来实现。试着自己做一下。如果你无法完成,可以在SO上提出一个新的问题,如果还没有人问过的话。你将不会得到表格编号,但你将直接得到表格。 - Keyur Potdar