python2爬虫的入门知识

这篇博客是作者入门python爬虫的笔记,仅供参考,如有错误请指正。

1.爬静态页面(百度首页 http://www.baidu.com),IDE为pycharm

 
 
# -*- coding: utf-8 -*-
import urllib2
def base():
    #定义url,然后调用urlopen函数打开,读取结果存在data变量中
    url = "http://www.baidu.com"
    data = urllib2.urlopen(url)
    #将data的内容存在文件中
    file = open("D://demo.html", "w")
    file.write(data.read())
    
if __name__ == '__main__':
    base()



 
 
本段代码用最基本的urlopen函数爬取网页内容,对于一些有反爬措施的网站,我们采用添加headers伪装浏览器的方法爬取,如CSDN就有反爬机制。

2.伪装浏览器,此处使用的方法是添加header中的user-agent字段信息,具体请看浏览器F12调试功能下,网络选项中的请求头,作者使用的是火狐浏览器

# -*- coding: utf-8 -*-
import random
import urllib2
from urllib import urlretrieve, urlcleanup

def openurl():
        url = "http://blog.csdn.net/szc889988/article/details/56331844"
        #下面是一个user-agent的数组
        user_agents = [
            'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',
            'Opera/9.25 (Windows NT 5.1; U; en)',
            'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
            'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',
            'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12',
            'Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9',
            "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Ubuntu/11.04 Chromium/16.0.912.77 Chrome/16.0.912.77 Safari/535.7",
            "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0 ",
        ]
        opener = urllib2.build_opener()
        agent = random.choice(user_agents)
        opener.addheaders = [("User-Agent", agent)]
        res = opener.open(url)
        htmlSource = res.read()
        fhandle = open("D://CSDN.html", "w")
        fhandle.write(htmlSource)
        print(htmlSource)

if __name__ == '__main__':
    openurl()

猜你喜欢

转载自blog.csdn.net/szc889988/article/details/74880481
今日推荐