python获取网站信息

#coding:utf-8

import urllib2
import os
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
from bs4 import BeautifulSoup

heads = {}
heads[‘User-Agent‘] = ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36‘

request=urllib2.Request("http://www.kugou.com" ,headers=heads)#创建对酷狗官网get请求
result=urllib2.urlopen(request)#发出请求

soup=BeautifulSoup(result.read(),‘html.parser‘)#生成可分析对象
for i in soup.find_all("div"):#遍历所有div标签
if i.get("id")=="SongtabContent":#判断id为SongtabContent的div标签
s=i.find_all("li")#把所有li标签内容赋值给s变量

with open(u"C://downloads//lw//a.txt","w") as f:#创建要写入文件对象
for i in s:#遍历所有li标签对象
f.write(u"歌曲名称为: %s " % i.a.select(".songName")[0].text)#获取class为songName的值
f.write(u"歌曲播放连接为: %s " % i.a.get("href"
)) #获取标签为href的值
f.write(u"歌曲播放时间为: %s" % i.a.select(".songTime")[0].text) #获取class为songTime的值
f.write(os.linesep)

def shoufu():

import requests
import re

resq = requests.get("http://www.sohu.com")#请求搜狐网站
print resq.text[:100]#打印响应结果前一百行
links = re.findall(r‘href="(.*?)"‘, resq.text)#查找所有包含href内容
print len(links)
valid_link = []#保存有效连接
invalid_link = []#保存无效连接

for link in links:
if re.search(r"(\.jpg)|(\.jpeg)|(\.gif)|(\.ico)|(\.png)|(\.js)|(\.css)$", link.strip()):#资源连接筛选出来
print 6, link
invalid_link.append(link.strip())
continue#进入此判断之后执行完直接执行下一次循环
elif link.strip() == "" or link.strip() == "#" or link.strip() == "/":#无效内容筛选去除
# print 1,link
invalid_link.append(link)
continue
elif link.strip().startswith("//"):#把有效相对连接筛选保存
# print 2,link
valid_link.append("http:" + link.strip())
continue
elif link.strip().count("javascript") >= 1 or link.strip().count("mailto:") >= 1:#引用js连接及邮箱超级连接去除
# print 3,link
invalid_link.append(link.strip())
continue
elif re.match(r"/\w+", link):#把剩下所有内容连接再做进一步筛选
# print 5,link
if re.match(r"http://.*?/", resq.url.strip()):#http开头连接筛选
valid_link.append(re.match(r"http://.*?/", resq.url.strip()).group() + link.strip())#把连接以/结尾内容保存
else:
valid_link.append(re.match(r"http://.*", resq.url.strip()).group() + link.strip())#把连接以内容结尾保存
continue
else:
# print 7,link
valid_link.append(link.strip())#筛选剩下的内容都保存到有效列表中

# for link in valid_link[:100]:
# print link
print len(valid_link)

# for link in invalid_link:
# print link
print len(invalid_link)

file_num = 1#为创建文件准备
for link in list(set(valid_link)):
# print link
resq = requests.get(link, verify=True)#允许证书校验并访问所有保存的有效连接
if u"篮球" in resq.text:#筛选网页内容中是否存在“篮球”内容
print link
if u‘meta charset="utf-8"‘ in resq.text:#判断网页是否以utf-8编码
with open(r"c:\\downloads\\lw\\" + str(file_num) + ".html", "w") as fp:
fp.write(resq.text.strip().encode("utf-8"))#编码内容为utf-8后保存到指定目录
else:
with open(r"c:\\downloads\\lw\\" + str(file_num) + ".html", "w") as fp:
fp.write(resq.text.strip().encode("gbk"))#编码内容为gbk后保存到指定目录
file_num += 1

print "Done!"

原文地址:http://blog.51cto.com/357712148/2115515

时间: 2024-07-31 00:59:14

python获取网站信息的相关文章

Python网络编程小例子:使用python获取网站域名信息

Whois简介 whois(读作"Who is",非缩写)是用来查询域名的IP以及所有者等信息的传输协议.简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人.域名注册商).通过whois来实现对域名信息的查询.早期的whois查询多以命令列接口存在,但是现在出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询.网页接口的查询工具仍然依赖whois协议向服务器发送查询请求,命令列接口的工具仍然被系统管理员广泛使用.whois通常

python 获取对象信息

当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> type(123) <type 'int'> >>> type('str') <type 'str'> >>> type(None) <type 'NoneType'> 如果一个变量指向函数或者类,也可以用type()判断: >&

python获取网站http://www.weather.com.cn 城市 8-15天天气

参考一个前辈的代码,修改了一个案例开始学习beautifulsoup做爬虫获取天气信息,前辈获取的是7日内天气, 我看旁边还有8-15日就模仿修改了下.其实其他都没有变化,只变换了获取标签的部分.但是我碰到 一个span获取的问题,如我的案例中每日的源代码是这样的. <li class="t"> <span class="time">周五(19日)</span> <big class="png30 d301&quo

python获取对象信息

获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender class Student(Person): def __init__(self, name, gender, score): super(Student, sel

python获取Linux信息

刚开始学习Python,用Python写了一个获取Linux服务器信息的脚本,在debian和centos上测试通过.首先需要安装一个psutil库,在安装psutil之前需要安装python的开发工具包 #debian  apt-get install python-dev #centos  yum install python-devel psutil下载页面 https://pypi.python.org/pypi?:action=display&name=psutil#downloads

python获取的信息列表微信公共平台和用户头像

转载注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/25207889 只写模拟登陆的方式获取微信从信息和头像库列表公共平台, - 相关后,功能将继续增加.github地址https://github.com/btyh17mxy/wxwall #!/usr/bin/env python # coding: UTF-8 import json import hashlib import re import random import jso

python获取服务器信息

python 通过ansible 获取服务器基本信息: #!/usr/bin/env python #coding:utf-8 def sever_info(ip)   cmd = "/usr/bin/ansible {ip} -m setup".format(ip=ip)   raw_info = subprocess.check_output(cmd,shell=True)   base_info = json.loads(raw_info.split('=>')[1])['

python 获取网站IP以及服务器

写了一个识别网站的ip以及服务器的代码,比较烂,希望大佬指教 1 import requests 2 import sys 3 import socket 4 5 def get_ip(url): # 获取IP 6 if 'http' in str(url): 7 url = url.split('//')[1] 8 ip = socket.gethostbyname(url) 9 else: 10 ip = socket.gethostbyname(url) 11 return ip 12 1

python 获取天气信息

[说明]接口为聚合数据接口.API使用说明: 实现代码: import requests,json def main(): #参数 farmat=1 cityname = input("请输入你想查询的城市天气:") key='621043608cb9e7f7f485461ef9e5adef' get_weather(farmat,cityname,key) def get_weather(format,cityname,key): url='http://v.juhe.cn/weat