我想通过这个环节来获取房价:https://www.leboncoin.fr/ventes_immobilieres/offres/ile_de_france/p-2/
我需要知道我的程序出了什么问题?在
我的计划:
import csv
import requests
from bs4 import BeautifulSoup
with open("bc.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["prix", "code_postal", "description", "nombre_pieces", "surface"])
for i in range(1, 20):
url = "https://www.leboncoin.fr/ventes_immobilieres/offres/ile_de_france/p-%s/" % i
soup = BeautifulSoup(requests.get(url).text, "html.parser")
repo = soup.find(class_="undefined")
for repo in repo.find_all("li", attrs={"itemscope itemtype": "http://schema.org/Offer"}):
prix = repo.find("span", {"itemprop": "priceCurrency"})
prix = prix.text if prix else ""
writer.writerow([prix])
我得到这个错误:
^{pr2}$
硒的阻断和使用已经被涵盖。我将展示一种方法,以一种很好的json格式获取所有列表,您可以轻松地提取信息。如果使用selenium访问每个页面,则可以使用regex提取页面上的所有列表信息并传递给json.loads要生成json对象example here,您可以轻松地解析每个列表的所有信息
^{1}$正则表达式说明:
试试看here
您试图搜索
requests
返回的数据中不存在的内容。在当您选中
^{1}$requests.get(url).text
时,您可能会看到类似于:导致}。在
None
被赋给变量repo
而解释器却抱怨None
类型的对象不存在属性{所以基本上,在开始处理之前,你需要确保你有正确的数据。正如KunduK在他的回答中建议的那样,使用硒和ChromeDriver就可以得到数据而不会被阻塞。你可以从http://chromedriver.chromium.org/得到ChromeDriver
在这里,JavaScripts呈现到佩奇。你可以同时使用硒和靓汤来获得想要的产量。在
^{1}$相关问题 更多 >
编程相关推荐