希望这是一个容易的。我已经浏览了大部分与我的查询相关的有效帖子(并从每个代码片段中获取了代码片段),以便将其应用到我自己的代码中,但出于某种原因,我没有太多运气。美丽的汤| Python | URL循环
从本质上讲,我想要实现的是以下几点:
- 遍历上realestate.com第3页 - 出售价格
- 获取地址与出售价格
- 认沽值到熊猫DataFrame
如果我执行下面的块(没有URL循环),它适用于页1。我需要的是它通过前三页,并返回所有20列表 (每页)。
empty_list = []
for page_number in range(3):
url_test = "https://www.realestate.com.au/sold/list-{}?activeSort=solddate".format(page_number)
r = requests.get(url_test)
soup = BeautifulSoup(r.text, "html.parser")
results_price = soup.find_all('span', attrs={'class':'property-price'})
results_info = soup.find_all('div', attrs={'class':'property-card__info'})
raw_html1 = results_price[page_number]
clean_price = raw_html1.text
raw_html2 = results_info[page_number]
street = raw_html2.find('a').text
empty_list.append((street, clean_price))
df = pd.DataFrame(empty_list, columns=["Address", "Sold_Price"])
错误:IndexError:列表索引超出范围
我错过了什么昭然若揭?
任何帮助将不胜感激。
亲切的问候, 阿德里安
做'results_price'和'results_info'实际上有3项或不?检查出。 – campovski
你好!这两个变量都会返回20个条目(最后20个物业出售)。我已经改变了从(3)到(20)的范围来匹配这个,但它仍然返回相同的错误。任何想法,我失踪了什么?你可以运行这个 - 使用Python 3.5使用BeautifulSoup,Requests和Pandas – AdrianC
'range(3)'转换为'[0,1,2]'。你确定在有效的网页中代入0结果吗? – Mangohero1