beautifulsoup - python requests 高频率刷新时卡顿
天蓬老师
天蓬老师 2017-04-17 17:54:50
0
4
651
  1. 我用requests.get()读取固定网页上的信息(网页非常简单,不超过十个字符),然后用beautifulsoup解析,我设定的是1秒读取一次,但是发现运行时非常不稳定,有时会隔十几秒才能读到内容。这是网站服务器端的问题还是我的程序问题,能够解决吗? (服务器是我自己的,用的是nginx和uwsgi,没有刷新频率限制)

  2. python程序如下:

import requests
import time
from bs4 import BeautifulSoup

while True:

html = requests.get("http://121.42.159.21")
soup = BeautifulSoup(html.content,"html.parser")

d1=soup.find(id="d1")
d2=soup.find(id="d2")

d1_state_new = d1.string
d2_state_new = d2.string

if d1_state_new != d1_state_old:
    print('d1 open')
else:
    print('d1 remain close')

if d2_state_new != d2_state_old:
    print('d2 open')
else:
    print('d2 remain close')

d1_state_old = d1_state_new
d2_state_old = d2_state_new
print(time.ctime())
time.sleep(1)

运行结果:

d1 remain close
d2 remain close
Wed Jun 15 18:05:35 2016
d1 remain close
d2 remain close
Wed Jun 15 18:05:36 2016
d1 remain close
d2 remain close
Wed Jun 15 18:05:39 2016
d1 remain close
d2 remain close
Wed Jun 15 18:05:40 2016
d1 remain close
d2 remain close
Wed Jun 15 18:05:44 2016
d1 remain close
d2 remain close
Wed Jun 15 18:05:45 2016

可以看到很大概率会隔两三秒才读到信息

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

모든 응답(4)
洪涛

차단되어 있으므로 비동기적으로 처리해야 합니다.

Peter_Zhu

요청은 시간 초과를 제한하여 네트워크 문제인지 확인합니다.
이런 가벼운 추출도 있는데 평소에 사용해도 충분합니다.

PHPzhong

응답을 기다리는 동안 차단되나요?

阿神

요청에는 문제가 없으며 비동기식 방법을 사용할 수 있습니다. 게다가 개인적으로 bs는 실제로 조금 느리다고 생각합니다. lxml에서 etree를 사용하여 직접 구문 분석할 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿