问题描述
我在网站上发现了一个非常不错的代码,可以进行网络抓取,并且正在尝试实现自己的目的。
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