适应Craigslist Scraper Python

时间:2017-06-21 22:24:15

标签: list python-3.x automation craigslist

我正在尝试使用我在网上找到的python 2.7 craigslist scraper来使用python 3.6。

但是每次我运行python脚本时它都不会返回任何内容。 是因为我没有定位正确的html标签吗?如果是这样,我将如何定位正确的HTML标签?

我假设这部分代码在这里:

    for listing in soup.find_all('p',{'class':'result-row'}):
    if listing.find('span',{'class':'result-price'}) != None:

完整的脚本如下。

先谢谢你。

import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin

URL = 'https://vancouver.craigslist.ca/search/sss?query=Vespa'
BASE = 'https://vancouver.craigslist.ca/'

response = requests.get(URL)

soup = BeautifulSoup(response.content,"html.parser")
for listing in soup.find_all('p',{'class':'result-row'}):
    if listing.find('span',{'class':'result-price'}) != None:
        price = listing.text[2:6]
        price = int(price)
        if price <=3600 and price > 1000:
            print (listing.text)
            link_end = listing.a['href']
            url = urljoin(BASE, link_end)
            print (url)
            print ("\n")
print('test')

1 个答案:

答案 0 :(得分:0)

你是对的,这是可能的问题:

 for listing in soup.find_all('p',{'class':'result-row'}):
    if listing.find('span',{'class':'result-price'}) != None:

必须针对您正在抓取的特定网页编辑此部分。您是否查看过该页面的HTML并验证了这两行?如果没有,请右键单击页面并选择&#34;查看页面源&#34;。然后你必须找到你想要抓取的特定数据。

如果我想从html中的网页中抓取一些内容:

<div class='what'>hello</div>

我将上面的代码更改为:

for listing in soup.find_all('div',{'class':'what'}):
     # do something