2017-02-12 114 views
1

我使用Python与请求和lxml从Craigslist搜索返回价格数组。当我运行代码时,会打印一个空白数组。我尝试了几个不同的xpath,但都没有工作。Python网页抓取。 xpath返回一个空的数组

编辑:我添加了其余的代码,包括函数被调用的地方。

from tkinter import * 
import requests 
from lxml import html 

window = Tk() 
window.title('Craigslist Apartment Finder') 
window.resizable(width=False, height=True) 

def getSearch(): 
    s1 = searchterm1.get() 
    s2 = searchterm2.get() 
    s3 = searchterm3.get() 

    if s1 != "": 
     url = "https://newyork.craigslist.org/search/brk/roo?sort=date&availabilityMode=0&query=" + s1 
    if s2 != "": 
     url = url + "+" + s2 
    if s3 != "": 
     url = url + "+" + s3 
    if s1 != "" or s2 != "" or s3 != "": 
     print(url) 
    else: 
     print("No search terms entered.") 

    page = requests.get(url) 
    print(page) 
    tree = html.fromstring(page.content) 

    price = tree.xpath('//span[class="result-price"]/text()') 

    print("Prices:", price) 

searchterm1 = Entry(window) 
searchterm2 = Entry(window) 
searchterm3 = Entry(window) 

programname = Label(window, text="Apartment Finder") 
runbutton = Button(window, text="Run", bg="green", fg="white", width=10, command=getSearch) 

displayurl = Label(window, text="url") 
programname.grid(row=0, column=0, columnspan=2) 
runbutton.grid(row=0, column=2) 
searchterm1.grid(row=1, column=0) 
searchterm2.grid(row=1, column=1) 
searchterm3.grid(row=1, column=2) 
displayurl.grid(row=2, column=0, columnspan=3) 

window.mainloop() 
+0

你能否提供你正在运行的整个代码,或测试案例?现在我看到的只是一个没有被调用的函数。 – galfisher

+0

发表示例url –

+0

新增所有代码@galfisher – PanczerTank

回答

2
//span[@class="result-price"] 

添加@的属性