python - Python lxml打印每个表格行
问题描述
当我在“cn”中输入内容时,脚本将在网站上进行查询并给我多行表格
from lxml import html
from lxml import etree
from lxml.etree import XPath
import requests
cn = input ('CN: ')
find_page = requests.get('search query' + cn + '')
tree = html.fromstring(find_page.content)
# //tr[2]/td[2]/a/text() is first row after <th>
com = tree.xpath('//tr[2]/td[2]/a/text()')
print ('COM:', com)
此代码仅在 XPath 位置 //tr[2] 上打印我表中的第一行,但我需要打印所有其他表行//tr[3]/td[2]/a/text()
//tr[4]/td[2]/a/text()
//tr[...]/td[2]/a/text()
编辑:
在解决了从表中获取所有项目之后,我得到了结果,例如COM: ['DAP', 'DAPA', 'DAP FOOD']
所有这些都有 href。我只能在第一个链接 (DAP) 上访问和抓取,但不能从 (DAPA 和 DAP FOOD) 抓取
from lxml import html
from lxml import etree
from lxml.etree import XPath
import requests
cn = input ('CN: ')
find_page = requests.get('search query' + cn + '')
tree = html.fromstring(find_page.content)
# //tr[2]/td[2]/a/text() is first row after <th>
com = tree.xpath('//tr/td[2]/a/text()')
link = tree.xpath('//tr/td[2]/a/@href')[0]
link = str(link)
com_link = ('website' + link)
page = requests.get(com_link)
tree = html.fromstring(page.content)
postal_code = tree.xpath('//span[@itemprop="postalCode"]/text()')[0]
print ('COM:', com)
print ('Postal Code', postal_code)
我如何访问 DAP、DAPA、DAP FOOD 并从中获取 postal_code?
解决方案
更改com = tree.xpath('//tr[2]/td[2]/a/text()')
为com = tree.xpath('//tr/td[2]/a/text()')
并且可以正常工作
from lxml import html
from lxml import etree
from lxml.etree import XPath
import requests
cn = input ('CN: ')
find_page = requests.get('search query' + cn + '')
tree = html.fromstring(find_page.content)
# //tr[2]/td[2]/a/text() is first row after <th>
com = tree.xpath('//tr/td[2]/a/text()')
print ('COM:', com)
推荐阅读
- excel - 打开文件的输入框仅适用于短名称
- .net - WPF(或 WinForm)WebView 不打开本地 URL(NotFound 404 错误)
- ios - 使用 kSecAttrApplicationTag 查询 iOS 钥匙串时的奇怪行为
- c# - 自定义 ComboBox.ItemsPanel
- python - 将参数传递给函数:我需要使用别名吗?
- android-mediaplayer - 是否可以获得 QMediaPlayer、Qt 5.9 的 Android MediaPlayer sessionID?
- postgresql - 如何在 PostgreSQL 中将 int 转换为字符串
- sql - 从 varchar 中提取日期
- .htaccess - 重定向匹配到外部 url
- google-apps-script - 如何从 google 电子表格中导出数据以创建可以在图表中使用的 arrayToDataTable?