导航:首页 > 编程语言 > python读取网页无法增加访问量

python读取网页无法增加访问量

发布时间:2022-08-30 20:56:04

‘壹’ python抓取网页信息时,读取的是非网页源代码,怎么解决啊

这个是你爬虫发送请求,被服务端拒绝了;可能有这么几种:1.需要登录,2.需要cookie,3,发送的头不符合服务端的要求,具体要研究服务端;
现手动登陆一次,用fiddler抓包,看一下,如果cookie,就把cookie带上;

‘贰’ python爬虫网页问题

没有表格数据,说明这个数据不是一开始请求就从服务器返回的,应该是ajax请求到的数据,你可以抓下包,分析一下网络请求,看看这些数据是哪个请求返回的。

‘叁’ 求大神指导:python模拟web浏览器读取动态网页的问题

这个只有自己一步步模拟请求过程,比较麻烦。还有就是绑定浏览器来爬取好资源慢,

或者自己修改浏览器引擎实现支持js的-------这个就太麻烦太难了

‘肆’ python如何读取网页中的数据

用Beautiful Soup这类解析模块:

  1. Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree);

  2. 它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作;

  3. 用urllib或者urllib2(推荐)将页面的html代码下载后,用beautifulsoup解析该html;

  4. 然后用beautifulsoup的查找模块或者正则匹配将你想获得的内容找出来,就可以进行相关处理了,例如:


    html='<html><head><title>test</title></head><body><p>testbody</p></body></html>'
    soup=BeautifulSoup(html)
    soup.contents[0].name
    #u'html'
    soup.comtents[0].contents[0].name
    #u'head'
    head=soup.comtents[0].contents[0]
    head.parent.name
    #u'html'
    head.next
    #u'<title>test</title>

‘伍’ 怎么利用python爬取csdn博客访问量例子

一、网址分析

进入自己的博客页面,网址为:http://blog.csdn.net/xingjiarong 网址还是非常清晰的就是csdn的网址+个人csdn登录账号,我们来看一下下一页的网址。

看到第二页的地址为:http://blog.csdn.net/xingjiarong/article/list/2
后边的数字表示现在正处于第几页,再用其他的页面验证一下,确实是这样的,那么第一页为什么不是http://blog.csdn.net
/xingjiarong/article/list/1呢,那么我们在浏览器中输入http://blog.csdn.net/xingjiarong
/article/list/1试试,哎,果然是第一页啊,其实第一页是被重定向了,http://blog.csdn.net/xingjiarong
被重定向到http://blog.csdn.net/xingjiarong/article/list/1,所以两个网址都能访问第一页,那么现在规
律就非常明显了:
http://blog.csdn.net/xingjiarong/article/list/ + 页号

二、如何获取标题

右键查看网页的源代码,我们看到可以找到这样一段代码:

我们可以看到标题都是在标签

<span class="link_title"><a href="/xingjiarong/article/details/50651235">

所以我们可以使用下面的正则表达式来匹配标题:

<span class="link_title"><a href=".*?">(.*?)</a></span>

三、如何获取访问量

拿到了标题之后,就要获得对应的访问量了,经过对源码的分析,我看到访问量的结构都是这样的:

<span class="link_view" title="阅读次数"> <a href="/xingjiarong/article/details/50651235" title="阅读次数">阅读</a>(1140)</span>

括号中的数字即为访问量,我们可以用下面的正则表达式来匹配:

<span class="link_view".*?><a href=".*?" title="阅读次数">阅读</a>\((.*?)\)</span>

四、如何判断是否为尾页

接下来我们要判断当前页是否为最后一页,否则我们就不能判断什么时候结束了,我找到了源码中‘尾页'的标签,发现是下面的结构:

<a href="/xingjiarong/article/list/2">下一页</a> <a href="/xingjiarong/article/list/7">尾页</a>

所以我们可以用下面的正则表达式来匹配,如果匹配成功就说明当前页不是最后一页,否则当前页就是最后一页。

<a href=".*?">尾页</a>

五、编程实现

下面是完整的代码实现:

#!usr/bin/python
# -*- coding: utf-8 -*-
'''
Created on 2016年2月13日
@author: xingjiarong
使用python爬取csdn个人博客的访问量,主要用来练手
'''
import urllib2
import re
#当前的博客列表页号
page_num = 1
#不是最后列表的一页
notLast = 1
account = str(raw_input('输入csdn的登录账号:'))
while notLast:
#首页地址
baseUrl = 'http://blog.csdn.net/'+account
#连接页号,组成爬取的页面网址
myUrl = baseUrl+'/article/list/'+str(page_num)
#伪装成浏览器访问,直接访问的话csdn会拒绝
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = {'User-Agent':user_agent}
#构造请求
req = urllib2.Request(myUrl,headers=headers)
#访问页面
myResponse = urllib2.urlopen(req)
myPage = myResponse.read()
#在页面中查找是否存在‘尾页'这一个标签来判断是否为最后一页
notLast = re.findall('<a href=".*?">尾页</a>',myPage,re.S)
print '-----------------------------第%d页---------------------------------' % (page_num,)
#利用正则表达式来获取博客的标题
title = re.findall('<span class="link_title"><a href=".*?">(.*?)</a></span>',myPage,re.S)
titleList=[]
for items in title:
titleList.append(str(items).lstrip().rstrip())
#利用正则表达式获取博客的访问量
view = re.findall('<span class="link_view".*?><a href=".*?" title="阅读次数">阅读</a>\((.*?)\)</span>',myPage,re.S)
viewList=[]
for items in view:
viewList.append(str(items).lstrip().rstrip())
#将结果输出
for n in range(len(titleList)):
print '访问量:%s 标题:%s' % (viewList[n].zfill(4),titleList[n])
#页号加1
page_num = page_num + 1

‘陆’ Python爬虫如何避免爬取网站访问过于频繁

一. 关于爬虫
爬虫,是一种按照一定的规则自动地抓取互联网信息的程序。本质是利用程序获取对我们有利的数据。

反爬虫,从不是将爬虫完全杜绝;而是想办法将爬虫的访问量限制在一个可接纳的范围,不要让它过于频繁。

二. 提高爬虫效率的方法
协程。采用协程,让多个爬虫一起工作,可以大幅度提高效率。

多进程。使用CPU的多个核,使用几个核就能提高几倍。

多线程。将任务分成多个,并发(交替)的执行。

分布式爬虫。让多个设备去跑同一个项目,效率也能大幅提升。

打包技术。可以将python文件打包成可执行的exe文件,让其在后台执行即可。

其他。比如,使用网速好的网络等等。

三. 反爬虫的措施
限制请求头,即request header。解决方法:我们可以填写user-agent声明自己的身份,有时还要去填写origin和referer声明请求的来源。

限制登录,即不登录就不能访问。解决方法:我们可以使用cookies和session的知识去模拟登录。

复杂的交互,比如设置“验证码”来阻拦登录。这就比较难做,解决方法1:我们用Selenium去手动输入验证码;方法2:我们用一些图像处理的库自动识别验证码(tesserocr/pytesserart/pillow)。

ip限制。如果这个IP地址,爬取网站频次太高,那么服务器就会暂时封掉来自这个IP地址的请求。 解决方法:使用time.sleep()来对爬虫的速度进行限制,建立IP代理池或者使用IPIDEA避免IP被封禁。

‘柒’ python网页爬取遇到的一些问题,求大神解惑

左侧的招聘信息是动态生成的,你需要使用AJAX进行爬取。

‘捌’ python读取网页,不增加访问量

浏览器访问一个网页,不止是加载这一个网页,还加载了 js ,图片,或一些框架页面。访问量有可能在这些 js ,框架页面,甚至 图片上做的。你需要仔细分析一下。

阅读全文

与python读取网页无法增加访问量相关的资料

热点内容
windowscmd关机命令 浏览:342
云桌面只要服务器装一套软件 浏览:245
电脑右键按到什么导致文件夹全屏 浏览:452
我的世界如何制造服务器主城 浏览:363
linuxssh连不上 浏览:297
永宏plc用什么编程电缆 浏览:371
win激活命令行 浏览:886
新手学电脑编程语言 浏览:893
云空间在哪个文件夹 浏览:926
编程游戏小猫抓小鱼 浏览:790
安卓dosbox怎么打开 浏览:774
服务器无影响是怎么回事 浏览:954
比德电子采购平台加密 浏览:202
加密货币400亿 浏览:524
植发2次加密 浏览:44
vc6查看编译的错误 浏览:595
心理大全pdf 浏览:1002
区域链加密币怎么样 浏览:343
查找命令符 浏览:95
压缩工具zar 浏览:735