xpath中爬取百度的6个标题,但是xpath都是一样,只有data-index这个区分123456
时间: 2024-10-23 19:17:55 浏览: 8
多线程xpath方法爬取历年电影票房排名(1996-2022)
要从具有相同XPath但不同"data-index"属性的元素中爬取百度首页的六个标题,你可以稍微调整`index_page`方法中的XPath选择器,并结合"data-index"来定位每个特定的标题。这里是一个示例:
```python
def index_page(self, response):
xpath_query = './/div[@class="result c-container"]//h3[@class="title"][@data-index]' # 使用"data-index"属性作为唯一标识
for i in range(1, 7): # 从1到6,对应1到6个标题
data_index_xpath = f'[@data-index="{i}"]' # 生成针对每个标题的独特XPath
title_xpath = xpath_query + data_index_xpath
for item in response.doc(title_xpath).items():
title_text = item.text.strip()
self.crawl(item.find('a').attr.url, callback=self.detail_page, title=title_text) # 存储标题文本
```
这段代码会针对每个"data-index"值(1到6)找到相应的标题,然后存储URL和标题文本以便后续处理。
阅读全文