当前位置:首页 » 文件传输 » python读取网页无法增加访问量
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

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

发布时间: 2022-04-19 19:13:29

⑴ 使用python采集网页内容时那登录那个网站,否则采集不了!请问怎么实现python登录后采集网页

有些网页需要你登录之后才可以访问,你需要提供账户和密码。
只要在发送http请求时,带上含有正常登陆的cookie就可以了。
1.首先我们要先了解cookie的工作原理。
Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等。
2.之后我们要获取到用户正常登录的cookie.
python提供了cookieJar的库,只要把cookieJar的实例作为参数传到urllib2的一个opener里面。
然后访问一次登录的页面,cookie就已经保存下来了。之后通过这个实例访问所有的页面都带有正常登陆的cookie了。
以人人网为例子。
#encoding=utf-8
import urllib2
import urllib
import cookielib
def renrenBrower(url,user,password):
#登陆页面,可以通过抓包工具分析获得,如fiddler,wireshark
login_page = "http://www.renren.com/PLogin.do"
try:
#获得一个cookieJar实例
cj = cookielib.CookieJar()
#cookieJar作为参数,获得一个opener的实例
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
#伪装成一个正常的浏览器,避免有些web服务器拒绝访问。
opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]
#生成Post数据,含有登陆用户名密码。
data = urllib.urlencode({"email":user,"password":password})
#以post的方法访问登陆页面,访问之后cookieJar会自定保存cookie
opener.open(login_page,data)
#以带cookie的方式访问页面
op=opener.open(url)
#读取页面源码
data= op.read()
return data
except Exception,e:
print str(e)
#访问某用户的个人主页,其实这已经实现了人人网的签到功能。
print renrenBrower("http://www.renren.com/home","用户名","密码")

⑵ 用python抓取,为什么有的网页无法抓取

你的代码理论上是适用于所有静态网页的
如果网页是动态加载内容的,这种方法是不行的

最好举个例子,哪些网站无法抓取

⑶ Python怎么用socket读取网站数据

是要连接到www.pythonlearn.com,然后发送请求获取/code/intro-short.txt,这样才行,HTTP请求格式网上应该有。

⑷ 求大神指导:用python的urllib.urlopen读取网页源码的问题

我之前遇到过类似的问题,现在也没解决。现象和你的差不多,就是在浏览器里边可以正常访问目标网址,在python解释器或者脚本中访问会超时。最终怀疑是windows浏览器设置相关的问题,楼主可以试试完整的urlopen方式:

try:
url = "http://api.themoviedb.org/3/search/person?api_key=API-KEY&query=natalie+portman"
header = { 'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16' }
req = urllib2.Request(url, None, header)
f = urllib2.urlopen(req)
except urllib2.HTTPError, e:
print e.code
print e.msg
print e.header
print e.fp.read()

把模拟浏览器头加进去试试。

⑸ python怎么处理点击“加载更多”(load more)的网页比如:https://securingtomorrow.mcafee.com/

一般这种网站是动态加载的,通过XHR请求的参数变化更新数据。

如果不熟悉解析过程可以使用selenium的webdriver模拟抓取。

⑹ python读取网页,不增加访问量

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

⑺ 如何将python的网页并发请求提高到50 qps

gevent + pypy不就好了……

该问题实际上比较困难, 牵扯到Linux内核机制。

⑻ python网页打不开

一、清除DNS解析缓存

关于电脑网页打不开怎么回事的问题,系统一般会缓存平时常用的DNS地址,这样能加速对网络的快速访问,但有时候这些DNS地址由于某种原因导致不正常,这会使网页无法正常打开,就会导致网页无法打开。清楚DNS缓存后一般就能解决问题了。

步骤1、按住快捷键“Windows+R键”,然后在弹出的对话框中输入“CMD”,再按 Enter键
步骤2、在新弹出的命令提示符窗口中输入“ipconfig /displaydns”,便可查看到系统之前使用过的DNS地址
步骤3、再输入命令“ipconfig /flushdns”。该命令的主要作用是清楚DNS解析缓存
步骤4、再成功刷新DNS解析缓存后,重新打开浏览器,打开网页是否能正常打开网页了呢?

二、手动设置DNS解析服务器

若清除系统DNS解析缓存后,还不能正常打开网页,那就有可能是当前系统使用的DNS解析服务器出故障了。一般情况下,上网都是通过路由器自动获取IP地址和DNS服务器地址,所以接下来要手动设置系统的DNS解析服务器地址。

步骤1、打开控制面板→查看网络状态和任务→更改适配器设置;

步骤2、找到网络连接→右键属性→进入本地连接属性设置页面
步骤3、在网络连接属性窗口中,找到 Internet协议版本4(TCP/IPv4),然后点击“属性”
步骤4、在Internet协议版本4(TCP/IPv4)的属性设置窗口中,我们选择“使用下面的DNS服务器地址”,并且在下面的DNS服务器地址栏中输入相应的DNS服务器地址,最后点击“确定”

⑼ 如何使用python 统计网站访问量并生成报表

统计网站访问量
统计出每个IP的访问量有多少?(从日志文件中查找)

#!/usr/bin/env python
#!coding=utf-8
list = []
f = file('/tmp/1.log')
str1 = f.readlines()
f.close()
for i in str1:
ip = i.split()[0] //split()通过指定分隔符对字符串进行切片,默认为所有的空字符;split分隔后是一个列表,[0]表示取其第一个元素;
list.append(ip)//追加
list_num = set(list)
for j in list_num:
num = list.count(j)
print '%s : %s' %(j,num)

生成报表
#_*_coding:utf-8_*_

import Mysqldb
import xlwt
from datetime import datetime

def get_data(sql):

# 创建数据库连接.
conn = MySQLdb.connect(host='127.0.0.1',user='root'\
,passwd='123456',db='test',port=3306,charset='utf8')
# 创建游标
cur = conn.cursor()
# 执行查询,
cur.execute(sql)
# 由于查询语句仅会返回受影响的记录条数并不会返回数据库中实际的值,所以此处需要fetchall()来获取所有内容。
result = cur.fetchall()
#关闭游标
cur.close()
#关闭数据库连接
conn.close
# 返给结果给函数调用者。
return result

def write_data_to_excel(name,sql):

# 将sql作为参数传递调用get_data并将结果赋值给result,(result为一个嵌套元组)
result = get_data(sql)
# 实例化一个Workbook()对象(即excel文件)
wbk = xlwt.Workbook()
# 新建一个名为Sheet1的excel sheet。此处的cell_overwrite_ok =True是为了能对同一个单元格重复操作。
sheet = wbk.add_sheet('Sheet1',cell_overwrite_ok=True)
# 获取当前日期,得到一个datetime对象如:(2016, 8, 9, 23, 12, 23, 424000)
today = datetime.today()
# 将获取到的datetime对象仅取日期如:2016-8-9
today_date = datetime.date(today)
# 遍历result中的没个元素。
for i in xrange(len(result)):
#对result的每个子元素作遍历,
for j in xrange(len(result[i])):
#将每一行的每个元素按行号i,列号j,写入到excel中。
sheet.write(i,j,result[i][j])
# 以传递的name+当前日期作为excel名称保存。
wbk.save(name+str(today_date)+'.xls')

# 如果该文件不是被import,则执行下面代码。
if __name__ == '__main__':
#定义一个字典,key为对应的数据类型也用作excel命名,value为查询语句
db_dict = {'test':'select * from student'}
# 遍历字典每个元素的key和value。
for k,v in db_dict.items():
# 用字典的每个key和value调用write_data_to_excel函数。
write_data_to_excel(k,v)