網(wǎng)頁(yè)爬蟲 - Python爬蟲運(yùn)行內(nèi)存占用過(guò)高導(dǎo)致電腦停止響應(yīng)
問(wèn)題描述
各位好,我寫了1個(gè)非常簡(jiǎn)單的爬蟲去爬取51job里的招聘信息。從下面的鏈接里提取出每個(gè)招聘崗位的鏈接(一共50個(gè)鏈接)http://search.51job.com/jobse...再根據(jù)每個(gè)招聘崗位的url為每個(gè)崗位生成一個(gè)id,并且爬取每個(gè)崗位鏈接中的標(biāo)題。最后把生成的信息打印到屏幕上。每次運(yùn)行時(shí)內(nèi)存占用率都會(huì)持續(xù)上升,最后導(dǎo)致電腦停止響應(yīng)。代碼非常簡(jiǎn)單,但是找不到哪里有問(wèn)題。。我的環(huán)境是Ubuntu16.04,Python3.5,Pycharm.
嘗試了下不用Pycharm直接運(yùn)行還是不行,只輸出了十幾條信息后就停了。運(yùn)行的時(shí)候一開始cpu很高,內(nèi)存持續(xù)增長(zhǎng)到2g多,電腦基本停止響應(yīng),用手機(jī)拍了一個(gè)圖。過(guò)了幾分鐘后,cpu使用率掉下來(lái)了,但是內(nèi)存占用還是80%左右。
import requestsfrom lxml import etreeimport reheaders = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'en-US,en;q=0.5', 'Connection': 'keep-alive', 'Host': 'jobs.51job.com', 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0'}def generate_info(url): html = requests.get(url, headers=headers) html.encoding = ’GBK’ select = etree.HTML(html.text.encode(’utf-8’)) job_id = re.sub(’[^0-9]’, ’’, url) job_title=select.xpath(’/html/body//h1/text()’) print(job_id,job_title)sum_page=’http://search.51job.com/jobsearch/search_result.php?fromJs=1&jobarea=070200%2C00&district=000000&funtype=0000&industrytype=00&issuedate=9&providesalary=06%2C07%2C08%2C09%2C10&keywordtype=2&curr_page=1&lang=c&stype=1&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&lonlat=0%2C0&radius=-1&ord_field=0&list_type=0&dibiaoid=0&confirmdate=9’sum_html=requests.get(sum_page)sum_select=etree.HTML(sum_html.text.encode(’utf-8’))urls= sum_select.xpath(’//*[@id='resultList']/p/p/span/a/@href’)for url in urls: generate_info(url)
問(wèn)題解答
回答1:這是idle的bug
把結(jié)果保存到文件里就行了~
回答2:我嘗試跑了一下你的code,發(fā)現(xiàn)并沒(méi)有出現(xiàn)內(nèi)存占用過(guò)大的情況,最大的時(shí)候也不過(guò)30M。我建議你做以下嘗試
不使用Pycharm直接在命令行下python xxx.py運(yùn)行查看是否是Pycharm的原因
確認(rèn)在運(yùn)行時(shí)的內(nèi)存占用還有CPU占用
正如你所說(shuō)的一樣,這個(gè)代碼很簡(jiǎn)單,任務(wù)量也不大,應(yīng)該不會(huì)出現(xiàn)這種問(wèn)題的
回答3:pycharm偶爾就是有這種難解,建議直接python環(huán)境下運(yùn)行。
相關(guān)文章:
1. docker 17.03 怎么配置 registry mirror ?2. javascript - sublime快鍵鍵問(wèn)題3. javascript - immutable配合react提升性能?4. DADB.class.php文件的代碼怎么寫5. javascript - html5多個(gè)label中其中一個(gè)觸發(fā)change,如何判斷是哪一個(gè)出發(fā)了change6. phpstudy8.1支持win11系統(tǒng)嗎?7. mysql事務(wù)回滾定位8. css - 寫頁(yè)面遇到個(gè)布局問(wèn)題,求大佬們幫解答,在線等,急!~9. 實(shí)現(xiàn)bing搜索工具urlAPI提交10. 配置Apache時(shí),添加對(duì)PHP的支持時(shí)語(yǔ)法錯(cuò)誤

網(wǎng)公網(wǎng)安備