python 爬虫写多个xpath语法,供爬虫程序选择 的逻辑
时间: 2023-12-17 12:59:31 浏览: 187
在爬虫程序中,可以将多个 XPath 语法存储在一个列表中,然后通过遍历列表的方式进行选择。例如:
```python
import requests
from lxml import etree
url = 'http://example.com'
xpath_list = [
'//div[@class="class1"]',
'//div[@class="class2"]',
'//a[@class="class3"]'
]
response = requests.get(url)
selector = etree.HTML(response.text)
for xpath in xpath_list:
results = selector.xpath(xpath)
if results:
for result in results:
print(result.text)
break
```
此例中,定义了一个 `xpath_list` 列表,其中包含了多个 XPath 语法。通过遍历 `xpath_list`,在网页中选取符合要求的元素。如果找到了符合条件的元素,则输出它们的文本内容,并终止循环。这样可以保证只选择一个元素,避免出现重复内容。
相关问题
python爬虫之数据提取xpath
XPath是一种用于在XML文档中定位元素的语言,也可以用于HTML文档中。在Python爬虫中,我们可以使用XPath来提取网页中的数据。使用XPath需要安装lxml库,然后使用lxml.etree模块中的XPath函数来进行数据提取。我们可以使用Chrome浏览器的开发者工具来查看网页中的元素,然后使用XPath来定位元素并提取数据。XPath的语法比较灵活,可以根据需要进行调整。使用XPath可以提高爬虫的效率和准确性。
python xpath爬虫实例
以下是一个使用Python的XPath爬虫的实例:
```python
import requests
from lxml import etree
if __name__ == '__main__':
url = 'https://pic.netbian.com/4kmeinv/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
}
page_text = requests.get(url=url, headers=headers).text
tree = etree.HTML(page_text)
li_list = tree.xpath('//div[@class="slist"]/ul/li/a')
if not os.path.exists('./piclibs'):
os.mkdir('./piclibs')
for li in li_list:
detail_url = 'https://pic.netbian.com' + li.xpath('./img/@src')[0]
detail_name = li.xpath('./img/@alt')[0 + '.jpg'
detail_name = detail_name.encode('iso-8859-1').decode('GBK')
detail_path = './piclibs/' + detail_name
detail_data = requests.get(url=detail_url, headers=headers).content
with open(detail_path, 'wb') as fp:
fp.write(detail_data)
print(detail_name, 'seccess!!')
```
这个爬虫实例通过发送网络请求获取页面源码,然后使用lxml库中的etree模块将页面源码转化为可解析的HTML树对象。之后,使用XPath语法来提取页面中的数据,例如获取图片的URL和名称。最后,将图片保存到本地文件夹。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [四个Python爬虫案例,带你掌握xpath数据解析方法!](https://blog.csdn.net/lyc2016012170/article/details/124507352)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [python中的xpath爬虫实例,新人处女作!!!](https://blog.csdn.net/Musica_l/article/details/120021669)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文