beautifulsoup和mechanicalsoup不会阅读网站

thtygnil  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(355)

我正在处理beautifulsoup,也尝试与mechanicalsoup它,我已经得到它与其他网站加载,但当我要求该网站被要求它花了很长时间,然后从来没有真正得到它。任何想法都会非常有用。
下面是我正在编写的漂亮的组代码:

import urllib3
from bs4 import BeautifulSoup as soup

url = 'https://www.apartments.com/apartments/saratoga-springs-ut/1-bedrooms/?bb=hy89sjv-mN24znkgE'

http = urllib3.PoolManager()

r = http.request('GET', url)

以下是机械组代码:

import mechanicalsoup

browser = mechanicalsoup.Browser()

url = 'https://www.apartments.com/apartments/saratoga-springs-ut/1-bedrooms/'
page = browser.get(url)
page

我想做的是收集不同城市和公寓的数据,所以网址会变为有两个卧室,然后有三个卧室,然后它会移动到另一个城市,在那里做同样的事情,所以我真的需要这部分工作。
任何帮助都将不胜感激。

djp7away

djp7away1#

如果你使用 curl 或者 wget 去拿那一页。我猜他们正在使用浏览器检测来阻止人们窃取他们的版权信息,就像你试图做的那样。你可以搜索 User-Agent 头看看如何假装是另一个浏览器。

jm2pwxwz

jm2pwxwz2#

import urllib3
import requests
from bs4 import BeautifulSoup as soup

headers = requests.utils.default_headers()
headers.update({
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'
})

url = 'https://www.apartments.com/apartments/saratoga-springs-ut/1-bedrooms/'

r = requests.get(url, headers=headers)

rContent = soup(r.content, 'lxml')

rContent

正如tim所说,我需要向代码中添加头文件,以确保它不是从bot读取的。

相关问题