买了本书从零开始初步摸门,虽然已经把书看了一轮了,现在才开始了动手的, 书后面是有提到 xml,lxml 的各种方式(也许高手们都倾向这些方式), 但我还是打算先搞通 html.parser 这个初步方式,获取小目标的成功。。。
随便在网上找了个表格网页,获取其中一个产品的规格。。。
用的是 firefox 56.0,自带开发者工具。 右键目标元素,在 firefox 查看器里右键,复制,Xpath,
得到的是: /html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr[3]/td/table/tbody/tr[1]/td[2]/table[2]/tbody/tr[11]/td[3]
我看书上写的目标元素路径是用 > 表示的(书上提到他的浏览器是 chrome )
尝试用两种表示方式,都 print 不出目标
是 soup.select()路径的问题?
#coding=UTF-8
import requests
from bs4 import BeautifulSoup
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
}
url = 'http://www.chinatimber.org/bj/'
page_req = requests.get(url,headers=headers)
soup = BeautifulSoup(page_req.text,'html.parser')
print(soup.select('html > body > table[2] > tbody > tr[2] > td[2] > table > tbody > tr[3] > td > table > tbody > tr[1] > td[2] > table[2] > tbody > tr[1] > td[3]'))
print(soup.select('/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr[3]/td/table/tbody/tr[1]/td[2]/table[2]/tbody/tr[1]/td[3]'))
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.