class DB(object):
def __init__(self, host, port, user,
passwd, db, use_unicode=True, charset='utf8'):
selfhost = host
selfport = port
selfuser = user
selfpasswd = passwd
selfdb = db
selfuse_unicode = use_unicode
selfcharset = charset
@property
def conn(self):
if not hasattr(self, '__conn'):
self__conn = MySQLdbconnect(
host=selfhost,
port=selfport,
user=selfuser,
passwd=selfpasswd,
db=selfdb,
use_unicode=selfuse_unicode,
charset=selfcharset
)
return self__conn
def reboot_conn(self):
if hasattr(self, '__conn'):
try:
self__connclose()
del self__conn
except:
pass
@catch_2006
def query(self, sql, args=None):
print sql
cursor = selfconncursor()
cursorexecute(sql, args)
cursorexecute('commit')
cursorclose()
@catch_2006
def select(self, sql, args=None, is_dict=False, is_one=False):
# print sql, args
if is_dict:
cursor = selfconncursor(cursorclass=DictCursor)
else:
cursor = selfconncursor()
cursorexecute(sql, args)
if is_one:
resultset = cursorfetchone()[0]
else:
resultset = cursorfetchall()
cursorclose()
return resultset
可以。URL全称统一资源定位符,如一个网页文档、一张、一个视频等都可以用URL唯一来确定。请求头:包含请求时的头部信息,如User-Agent,请求时额外携带的数据如表单提交时的表单数据,host和url可以确定是一个网站或应用,其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环。
打开系统钥匙串应用,在我的证书中找到刚安装的Charles的Root证书,双击打开,在使用此证书这一栏选择始终相信
Help -> SSL Proxying -> Install Charles Root Certificate On a Mobile Device or Remote Browser
设置-通用-描述文件,点击证书进行安装
设置-关于本机-证书信任设置,打开对证书的信任
点击add添加代理
Host:输入你需要抓取数据的域名
Port:输入默认的443端口
到此就可以抓取到>
#start coding
首先要知道自己在爬什么~楼主说找到HTML的代码云云,思路其实是错误的。因为我们想要的内容不在原始的html里面。但是肯定在浏览器和服务器之间的通信里,我们只要找到这部分数据就好。
#我用的是Firefox的FireBug
选择网络(Chrome中应该是Network),点击调仓历史记录
可以看到浏览器和服务器之间进行了一次通信。我们截获了一个网址。打开看看。可以看到浏览器和服务器之间进行了一次通信。我们截获了一个网址。打开看看。
看上去像是一堆乱码,但是细心的话就会发现……
也就是说我们要的数据都在这里了,所以只要先获取这个页面的内容然后在提取数据就好了~
#python3项目,python2中请使用urllib和urllib2
import urllibrequest
url = 'cube_symbol=ZH010389&count=20&page=1'
req = urllibrequestRequest(url,headers=headers)
html = urllibrequesturlopen(req)read()decode('utf-8')
print(html)
运行一下~
报错了~报错没关系,兵来将挡水来土掩~
403禁止访问…应该是headers的问题…什么是headers呢…403禁止访问…应该是headers的问题…什么是headers呢…
你现在用python去访问网页,网页得到的请求就是你是python程序,但是网页并不想让程序看到自己,因为他是给人看的,资源都被程序占了算什么,所以我们要让python伪装成浏览器。
依然是用Firebug查看headers信息。
然后我们完善代码在访问过程中添加headers~然后我们完善代码在访问过程中添加headers~
import urllibrequest
headers = {'X-Requested-With': 'XML>
有些网站为了防止spider对客户信息的抓取或者抓取一些信息被他人所利用,对访问网站进行了一定的限制,但这些网页可以通过浏览器正常访问,因此,我们通过把spider伪装成浏览器对网页进行抓取,这些步骤通过在urlopen(url,headers)中添加headers来完成。
1通过spider打开一个csdn博主的主页,会发现状态码返回403,这就说明这个博客网页加了限制。
我们先通过Google的chrome浏览器打开这个csdn博客(>
1、tcpdump检测登录linux系统输入tcpdump,如果找不到表示没有安装。也可以用rpm查询。
2、输入yum install tcpdump 查找安装tcpdump,需要联网。
3、安装好之后,输入tcpdump 或rpm可以查询到了。
4、tcpdump -any i 就是抓取网卡所有的包,这个就是最全的。
5、tcpdump host指定地址,表示抓取来自指定地址的包。
6、筛选指定包,此外可以通过多条件叠加来抓取。用and连接。
7、然后检索一下刚刚重定向的文件里面的数据即可。
以上就是关于我想用python抓取网页里的图片,地址,商铺名,电话号码,怎么写代码全部的内容,包括:我想用python抓取网页里的图片,地址,商铺名,电话号码,怎么写代码、host和url可以唯一确定一个网站或应用吗、Charles抓取加密请求等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)