使用BeautifulSoup Python无法找到HTML元素

问题描述

我在

Edit Autocomplete controlled inputValue

网站上发现了一个非常不错的代码,可以进行网络抓取,并且正在尝试实现自己的目的。

https://towardsdatascience.com/,这是匈牙利房地产网站。首先,我只想获取房地产的价格,但是如果我运行代码,没有任何结果,则找到的项目数为0。

export default function ControlledInputValue() {
  const classes = useStyles();
  const [inputValue,setInputValue] = React.useState("");

  return (
    <div className={classes.root}>
      <Autocomplete
        multiple
        id="tags-standard"
        options={top100Films}
        inputValue={inputValue}
        onInputChange={(event,value,reason) => {
          if (reason !== "reset") {
            setInputValue(value);
          }
        }}
        getoptionLabel={(option) => option.title}
        renderInput={(params) => (
          <TextField
            {...params}
            variant="standard"
            label="Multiple values"
            placeholder="Favorites"
          />
        )}
      />
    </div>
  );
}

我能毁了什么?曾经有一些网站可以工作,例如Myprotein,但是有些地方却没有。

解决方法

这里只是按照您的要求收取价格

在没有用户代理的情况下,它会禁止403错误

import requests
from bs4 import BeautifulSoup
import pandas as pd

start_url="https://ingatlan.com/lista/elado+lakas+ii-ker?page=1"
page_data=requests.get(start_url,headers={'User-Agent': 'XYZ/3.0'})
soup=BeautifulSoup(page_data.content,"html.parser")

#for i in soup:  #i was first just checking http staus here 
    #print(i)    #without useragent i got 403 as response
    #print()
    
Price=[]

for job_tag in soup.find_all("div",class_="resultspage__content"):
    for job_tag2 in job_tag.find_all("div",class_="listing js-listing"):
        for job_tag3 in job_tag2.find_all("div",class_="price__container js-has-sqm-price-info-tooltip"): 


            price=job_tag3.find("div",class_="price")
            Price.append(price.text.strip())
            #print(Price)

data=pd.DataFrame(Price,columns=["price"])
print(data)

pandas DataFrame的输出

         price
0    31.5 M Ft
1    77.9 M Ft
2      62 M Ft
3   129.5 M Ft
4     125 M Ft
5    95.9 M Ft
6    46.9 M Ft
7    45.9 M Ft
8    59.9 M Ft
9     109 M Ft
10     48 M Ft
11     87 M Ft