希望得到解決的問題:
一、如何通過requests獲取目標地址的樓層號信息。
二、采用selenium+chrome方式獲取源碼,如何解決無限加載困境,并獲得含樓層號信息的源碼
請親測后回答,不要紙上談兵。
目標地址:
https://tieba.baidu.com/p/558...
目標任務(wù):采集目標地址所在貼的樓層號與昵稱保存為字典以供使用。
采用requests方式請求到的源碼中不包含樓層號(1樓,2樓,5樓等)信息,此為任務(wù)需要采集的字段,如何獲取到帶樓層號信息的源碼?估計該地址使用了ajax渲染,直接requests獲取不到,
而同樣是百度貼吧,此貼(https://tieba.baidu.com/p/483...)則能使用requests請求到含樓層號信息的源碼,為了使腳本更具兼容性,只好使用selenium+chrome方式,結(jié)果在get該地址時出現(xiàn)無限加載的困境,試圖采用如下方式來停止頁面無限加載以繼續(xù)運行代碼:
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
driver = webdriver.Chrome()
# 設(shè)定頁面加載限制時間
driver.set_page_load_timeout(5)
driver.maximize_window()
try:
driver.get('http://tieba.baidu.com/p/5580899300')
except:
print('time out after 5 seconds when loading page')
driver.execute_script('window.stop()')
print(driver.page_source)
driver.quit()
結(jié)果執(zhí)行到下面語句時出錯
driver.execute_script('window.stop()')
錯誤信息如下:
time out after 5 seconds when loading page
Traceback (most recent call last): File "C:\Users\Administrator\.vscode\extensions\ms-python.python-2018.1.0\pythonFiles\PythonTools\visualstudio_py_launcher_nodebug.py", line 74, in run
_vspu.exec_file(file, globals_obj)
File "C:\Users\Administrator\.vscode\extensions\ms-python.python-2018.1.0\pythonFiles\PythonTools\visualstudio_py_util.py", line 119, in exec_file
exec_code(code, file, global_variables)
File "C:\Users\Administrator\.vscode\extensions\ms-python.python-2018.1.0\pythonFiles\PythonTools\visualstudio_py_util.py", line 95, in exec_code
exec(code_obj, global_variables)
File "d:\XXX\XXX\sf.py", line 13, in <module>
driver.execute_script('window.stop()')
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 627, in execute_script
'args': converted_args})['value']
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 312, in execute
self.error_handler.check_response(response)
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: timeout
(Session info: chrome=64.0.3282.140)
(Driver info: chromedriver=2.35.528161 (5b82f2d2aae0ca24b877009200ced9065a772e73),platform=Windows NT 6.1.7601 SP1 x86_64)有的時候找錯方向也是挺悲催的(親測,沒有紙上談兵)
# coding: utf-8
from __future__ import unicode_literals
import requests
import json
from pyquery import PyQuery as Q
r = requests.get('https://tieba.baidu.com/p/5580899300')
for _ in Q(r.text)('div.l_post_bright'):
d = json.loads(Q(_).attr('data-field'))
print d['author']['user_name'], d['content']['post_no']北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領(lǐng)域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務(wù)負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。