我目前正在使用scrapy进行python并尝试从网站检索信息,其源代码与此类似:
<tr>
<th scope="row">Date</th>
<td>10/17/2001</td>
<td></td>
</tr>
<tr>
<th scope="row">Title</th>
<td>Harry Potter</td>
<td></td>
</tr>
<tr>
<th scope="row">Author</th>
<td>J.K. Rowling</td>
<td></td>
</tr>
Harry Potter 是我想要检索的文本字符串。但是,我无法使用传统的Xpath分隔符,因为整个页面中有多个此代码段的实例(只有th / td标记之间有不同的文本 - 如上面的代码所示)。所有这些标签都以scope =“row”属性开头。
此外,我不能只抓取标签的第x个实例,因为我正在抓取的每个网页都有可变数量的实例。
有没有办法获取 scrapy 中特定文本字符串(如标题)后面的文本(例如 Harry Potter )?
答案 0 :(得分:0)
试一试。一般来说,学会成为XPath。
/tr/td/text()
答案 1 :(得分:0)
您可能想尝试:
//tr/th[@scope="row"][.="Title"]/following-sibling::td[1]/text()