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调试功能下,网络选项中的请求头,作者使用的是火狐浏览器
# -*- 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实现(2)
下一篇: Python网络爬虫2