首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BeautifulSoup和MechanicalSoup不会阅读网站

BeautifulSoup和MechanicalSoup不会阅读网站
EN

Stack Overflow用户
提问于 2021-04-28 05:03:14
回答 2查看 47关注 0票数 0

我正在处理BeautifulSoup,也尝试着使用MechanicalSoup,我已经将它与其他网站一起加载,但当我请求请求该网站时,它需要很长时间,然后再也没有真正得到它。任何想法都会非常有帮助。

下面是我正在编写的BeautifulSoup代码:

代码语言:javascript
复制
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)

下面是Mechanicalsoup的代码:

代码语言:javascript
复制
import mechanicalsoup

browser = mechanicalsoup.Browser()

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

我正在尝试做的是收集不同城市和公寓的数据,所以url会变成两间卧室,然后是三间卧室,然后它会移动到不同的城市,在那里做同样的事情,所以我真的需要这部分工作。

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-28 05:26:23

代码语言:javascript
复制
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所说,我需要向我的代码添加头文件,以确保它不是从机器人读取的。

票数 0
EN

Stack Overflow用户

发布于 2021-04-28 05:10:53

如果您使用curlwget来获取页面,也会看到同样的情况。我的猜测是,他们正在使用浏览器检测,试图防止人们窃取他们的版权信息,就像你试图做的那样。您可以搜索User-Agent标头,看看如何伪装成另一个浏览器。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67290645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档