我正在尝试使用我在网上找到的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')
答案 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