欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python2爬虫的入门知识

程序员文章站 2022-05-04 11:28:42
...

这篇博客是作者入门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调试功能下,网络选项中的请求头,作者使用的是火狐浏览器

python2爬虫的入门知识

# -*- 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()

相关标签: 爬虫 python