如何使用XPath解析此HTML表?

如何使用XPath解析此HTML表?,html,python-3.x,xpath,mechanicalsoup,Html,Python 3.x,Xpath,Mechanicalsoup,我试图使用xpath获取HTML表的内容,我使用Mechanicalsoup获取表单并提交它(数据在提交表单后面),一旦我点击第二个表单,我获取URL并传递它进行解析,但我得到的是AttributeError:'list'对象没有属性“xpath” import mechanicalsoup import requests from lxml import html from lxml import etree #This Will Use Mechanical Soup to grab t

我试图使用xpath获取HTML表的内容,我使用Mechanicalsoup获取表单并提交它(数据在提交表单后面),一旦我点击第二个表单,我获取URL并传递它进行解析,但我得到的是
AttributeError:'list'对象没有属性“xpath”

import mechanicalsoup
import requests
from lxml import html
from lxml import etree


#This Will Use Mechanical Soup to grab the Form, Subit it and find the Data Table
browser = mechanicalsoup.StatefulBrowser()
winnet = "http://winnet.wartburg.edu/coursefinder/"
browser.open(winnet)
Searchform = browser.select_form()
Searchform.choose_submit('ctl00$ContentPlaceHolder1$FormView1$Button_FindNow')
response1 = browser.submit_selected() #This Progresses to Second Form
dataURL = 'https://winnet.wartburg.edu/coursefinder/Results.aspx' #Get URL of Second Form w/ Data


pageContent=requests.get(dataURL)
tree = html.fromstring(pageContent.content)
dataTable = tree.xpath('//*[@id="ctl00_ContentPlaceHolder1_GridView1"]')
print(dataTable)
for row in dataTable.xpath(".//tr")[1:]:
    print([cell.text_content() for cell in row.xpath(".//td")])

#XPath to Table
#//*[@id="ctl00_ContentPlaceHolder1_GridView1"]

我会发布我试图解析的HTML,但它非常长,而且从我在其他一些网站上看到的情况来看,它写得非常草率,我不确定,但我相信你想要的是这样的东西。如果不是这样的话,你可以修改它来达到你想要的目的

import pandas as pd
rows = [] #initialize a collection of rows
for row in dataTable[0].xpath(".//tr")[1:]: #add new rows to the collection
    rows.append([cell.text_content().strip() for cell in row.xpath(".//td")])

df = pd.DataFrame(rows) #load the collection to a dataframe
df
输出(请原谅格式):

查看详情AC 121 01会计原则I Pilcher,A M W F 10:45AM-11:50AM 45/40/0 WBC 116 2019-20 WI 1.00

查看详细信息AC 122 01会计原则II Pilcher,MWF 12:00PM-1:05PM 45/42/0 WBC 116 2019-20 WI 1.00


等等。

你能发布你的
数据URL吗?
?我将代码中的数据URL设置为我正在抓取的URL。请注意,除非第一个表单执行搜索,否则该表单为空。我的mechnicalsoup代码部分应该提交该表单以获得填充的结果页。请尝试
print(type(dataTable))
,我猜这会告诉您为什么要获得
AttributeError:'list'对象没有属性“xpath”
这正是我想要的。您是否碰巧对“连接到结果”页面进行了任何修改?我遇到了一个我害怕的问题,结果页面是空白的。@RobertFarmer-不,恐怕我没有碰它。