python-Python爬虫爬取网页源代码为空,求问原因&解决方案(向)

问题描述

Python爬虫爬取网页源代码为空,求问原因&解决方案(向)
代码如下:
import urllib
import urllib2
import re

url ='http://www.yingjiesheng.com/guangzhou-moreptjob-2.html'
req = urllib2.Request(url)
try:
html = urllib2.urlopen(req).read()
print html
except urllib2.HTTPError e:
print 'The server couldn't fulfill the request.'
print 'Error code: ' e.code
except urllib2.URLError e:
print 'We failed to reach a server.'
print 'Reason: ' e.reason
else:
print 'No exception was raised.'

代码结果如下:

求:在爬取网页源代码的时候返回空的原因及解决方案(或解决方向)~求大神指点迷津啊!        (PS:在处理这个问题的时候,我曾在IDLE上直接敲这段代码运行,有时候可以返回源代码有时候不可以,另外,有时候我把程序运行了几十遍之后,就能返回源代码,这时候我把url的数字2改为3时(即相当下一页),又不可以了,好诡异~~)

解决方案

代码:

 #!/usr/bin/env python3#-*- coding=utf-8 -*-import urllib3if __name__ == '__main__':    http=urllib3.PoolManager()    r=http.request('GET''http://www.yingjiesheng.com/guangzhou-moreptjob-2.html')    print(r.data.decode(""gbk""))

可以正常抓取。需要安装urllib3py版本3.43

解决方案二:
页面是异步的,ajax方式,所以你请求的时候有时候没有拿到内容就返回了。

解决方案三:

运行截图。

解决方案四:
感谢好心人的帮忙,虽然最后我用了另外的方式搞定了问题。
首先,我想说这次问题并不是因为ajax的异步问题,因为该网页貌似没有用到ajax的技术,而且即便用了ajax技术,一般也不会返回为空吧?(京东网有用ajax我爬过,所以感觉这次问题不是ajax的异步问题)
其次,最后我换了个编译器(pycharm)并且在Python2.7中用urllib2解决了以上问题,问题的直接原因是编译器问题。另外,鉴于回复中有用urllib3也能解决的答案,所以我觉得这次问题产生的根本原因可能是编译器运行代码时对服务器请求时或得到回复时出了问题,可能是连接中断?或者访问超时?具体原因不明,因为我的代码在python自带的IDLE中,只要一行一行的码上去,然后一行一行的运行是没问题的,一旦写在脚本上,全部代码一次性运行就会出现问题了(有时候把脚本运行几十次也就行了;重启几次IDLE,再运行也行了(好诡异!!!))。
最后,希望以后能查出真正的原因!

解决方案五:
上周去比赛..怕第二天代码出问题,前一天晚上写好代码测试好电脑都没敢关机,结果第二天演示时候出错,key error...觉得urllib2这个库有时候很扯..不知道为什么 会不会牵扯到缓存什么的

时间: 2024-09-18 12:52:09

python-Python爬虫爬取网页源代码为空,求问原因&解决方案(向)的相关文章

使用Python多线程爬虫爬取电影天堂资源_python

最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址,代码已经上传到GitHub上了,需要的同学可以自行下载.刚开始学习python希望可以获得宝贵的意见. 先来简单介绍一下,网络爬虫的基本实现原理吧.一个爬虫首先要给它一个起点,所以需要精心选取一些URL作为起点,然后我们的爬虫从这些起点出发,抓取并解析所抓取到的页面,将所需要的信息提取出来,同时获得的新的URL插入到队列中作为下一次爬取的起点.这样不断地循环,一直到获得你想得到的所有的信息爬虫的任务

[python] 常用正则表达式爬取网页信息及分析HTML标签总结

这篇文章主要是介绍Python爬取网页信息时,经常使用的正则表达式及方法.它是一篇总结性文章,实用性比较大,主要解决自己遇到的爬虫问题,也希望对你有所帮助~ 当然如果会Selenium基于自动化测试爬虫.BeautifulSoup分析网页DOM节点,这就更方便了,但本文更多的是介绍基于正则的底层爬取分析. 涉及内容如下: 常用正则表达式爬取网页信息及HTML分析总结 1.获取<tr></tr>标签之间内容 2.获取<a href..></a>超链接之间内容

python制作爬虫爬取京东商品评论教程_python

本篇文章是python爬虫系列的第三篇,介绍如何抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化.下面是要抓取的商品信息,一款女士文胸.这个商品共有红色,黑色和肤色三种颜色, 70B到90D共18个尺寸,以及超过700条的购买评论. 京东商品评论信息是由JS动态加载的,所以直接抓取商品详情页的URL并不能获得商品评论的信息.因此我们需要先找到存放商品评论信息的文件.这里我们使用Chrome浏览器里的开发者工具进行查找. 具体方法是在商品详情页点击鼠标右键,选择检查,在弹出的开发者工具界

[python学习] 简单爬取维基百科程序语言消息盒

        文章主要讲述如何通过Python爬取维基百科的消息盒(Infobox),主要是通过正则表达式和urllib实现:后面的文章可能会讲述通过BeautifulSoup实现爬取网页知识.由于这方面的文章还是较少,希望提供一些思想和方法对大家有所帮助.如果有错误或不足之处,欢迎之处:如果你只想知道该篇文章最终代码,建议直接阅读第5部分及运行截图. 一. 维基百科和Infobox         你可能会疑惑Infobox究竟是个什么东西呢?下面简单介绍.        维基百科作为目前规

数据-python 实现爬取网页的审查元素,求大神路过

问题描述 python 实现爬取网页的审查元素,求大神路过 网页源代码只有 JavaScript,没有我想要的数据.只能通过审查元素看到,怎样才能抓取审查元素的内容 暂时用的是selenium,但只能看源代码.求大神路过 解决方案 selenium拿到数据后,用lxml来解析节点,获取你对应的数据 解决方案二: beautifulsoup试试吧.. 解决方案三: 我发现了一个在云上写和运行爬虫的网站,http://www.shenjianshou.cn/.被吓到了,之前就有过这种想法,终于有人帮

如何用python 2和python 3伪装浏览器爬取网页

python网页抓取功能非常强大,使用urllib或者urllib2可以很轻松的抓取网页内容.但是很多时候我们要注意,可能很多网站都设置了防采集功能,不是那么轻松就能抓取到想要的内容. 今天我来分享下载python2和python3中都是如何来模拟浏览器来跳过屏蔽进行抓取的. 最基础的抓取: #! /usr/bin/env python # -*- coding=utf-8 -*- # @Author pythontab import urllib.request url = "http://w

浅谈Python爬取网页的编码处理_python

背景 中秋的时候一个朋友给我发了一封邮件说他在爬链家的时候发现网页返回的代码都是乱码让我帮他参谋参谋(中秋加班真是敬业= =)其实这个问题我很早就遇到过之前在爬小说的时候稍微看了一下不过没当回事其实这个问题就是对编码的理解不到位导致的. 问题 很普通的一个爬虫代码代码是这样的 # ecoding=utf-8 import re import requests import sys reload(sys) sys.setdefaultencoding('utf8') url = 'http://j

ubuntu上python无法爬取网页

问题描述 ubuntu上python无法爬取网页 在ubuntu12.04下写了个简单的python测试代码: -*- coding: UTF-8 -*- import time,urllib2,urllib,StringIO,sys,os,multiprocessing,sqlite3 if name == '__main__': stockUrl="http://www.baidu.com" stockWeb = urllib.urlopen(stockUrl).read() pr

网络爬虫-wget爬取网页失败问题

问题描述 wget爬取网页失败问题 用wget工具爬取指定url的页面,我的url是www.baidu.com时,就没问题,要是这个url就爬不下来https://www.baidu.com/s?wd=1446544426%40qq.com&rsv_spt=1&rsv_iqid=0x93249e020001a818&issp=1&f=3&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=98050039_dg&rsv_en