首页 > 代码库 > Python爬取网页的三种方法

Python爬取网页的三种方法

# Python爬取网页的三种方法之一:  使用urllib或者urllib2模块的getparam方法

import urllib

fopen1 = urllib.urlopen(‘http://www.baidu.com‘).info()

fopen2 = urllib2.urlopen(‘http://www.sina.com‘).info()

print fopen1.getparam(‘charset‘)

print fopen2.getparam(‘charset‘)

#----有些网站有反爬虫技术,需要如下办法----

url = ‘http://www.qiushibaike.com/hot/page/1‘

user_agent = ‘Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)‘

headers = { ‘User-Agent‘ : user_agent }

request = urllib2.Request(url,headers = headers)

c_res=urllib2.urlopen(request).info()

print c_res.getparam(‘charset‘)

# Python爬取网页的三种方法之二 : 使用chardet模块 ---感觉比方法一速度慢一点

import chardet

import urllib

#先获取网页内容

data1 = urllib.urlopen(‘http://www.baidu.com‘).read()

#用chardet进行内容分析

chardit1 = chardet.detect(data1)

print chardit1[‘encoding‘]

#----有些网站有反爬虫技术,需要如下办法----

url = ‘http://www.qiushibaike.com/hot/page/1‘

user_agent = ‘Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)‘

headers = { ‘User-Agent‘ : user_agent }

response = urllib2.urlopen(request).read()

chardit1 = chardet.detect(response)

print chardit1[‘encoding‘]

# Python爬取网页的三种方法之三 : 利用BeautifulSoup模块方法

from bs4 import BeautifulSoup

import urllib2

content=urllib2.urlopen(‘http://www.baidu.com‘)

soup=BeautifulSoup(content)

print soup.original_encoding #这里的输出就是网页的编码方式

#----有些网站有反爬虫技术,需要与上述两办法类似处理----


Python爬取网页的三种方法