栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

python爬虫

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python爬虫

python爬虫_雷书婷 1、爬虫入门程序

什么是爬虫:网络爬虫(又被称为网页蜘蛛,网络机器人,在 FOAF 社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

1.1环境准备
1. JDK1.8
2. IntelliJ IDEA
3. IDEA自带的Maven
4. pom.xml相关依赖
1.2 简单爬取网页代码
import urllib.request
 
url = 'http://www.baidu.com'
response = urllib.request.urlopen(url)
print ('状态码:',response.getcode())
data = response.read()
data = data.decode('utf-8')
print (data)
2、爬虫的使用 2.1 添加date、headers相应属性

date:对数据进行编码

import urllib  
import urllib2  

url = 'http://www.server.com/login'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'  
values = {'username' : 'cqc',  'password' : 'XXXX' }  
headers = { 'User-Agent' : user_agent }  
data = urllib.urlencode(values)  
request = urllib2.Request(url, data, headers)  
response = urllib2.urlopen(request)  
page = response.read()

“反盗链”:headers = { ‘User-Agent’ : ‘Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)’ , ‘Referer’:‘http://www.zhihu.com/articles’ }
作用:对付防盗链,服务器会识别 headers 中的 referer 是不是它自己,如果不是,有的服务器不会响应

2.2 post请求方式
import urllib
import urllib2

values = {"username":"1016903103@qq.com","password":"XXXX"}
data = urllib.urlencode(values) 
url = "https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn"
request = urllib2.Request(url,data)
response = urllib2.urlopen(request)
print response.read()
2.3 get请求方式
import urllib
import urllib2

values={}
values['username'] = "1016903103@qq.com"
values['password']="XXXX"
data = urllib.urlencode(values) 
url = "http://passport.csdn.net/account/login"
geturl = url + "?"+data
request = urllib2.Request(geturl)
response = urllib2.urlopen(request)
print response.read()
2.4 程序添加cookie
含义:cookielib 模块的主要作用是提供可存储 cookie 的对象,以便于与 urllib2 模块配合使用来访问 Internet 资源。cookielib 模块非常强大,我们可以利用本模块的 cookieJar 类的对象来捕获 cookie 并在后续连接请求时重新发送,比如可以实现模拟登录功能。该模块主要的对象有 cookieJar、FilecookieJar、MozillacookieJar、LWPcookieJar。 它们的关系:cookieJar —— 派生 ——>FilecookieJar —— 派生 ——->MozillacookieJar 和 LWPcookieJar

获取 cookie 保存到变量:

import urllib2
import cookielib
cookie = cookielib.cookieJar()
handler=urllib2.HTTPcookieProcessor(cookie)
opener = urllib2.build_opener(handler)
response = opener.open('http://www.baidu.com')
for item in cookie:
    print 'Name = '+item.name
    print 'Value = '+item.value

保存 cookie 到文件

import cookielib
import urllib2

filename = 'cookie.txt'
cookie = cookielib.MozillacookieJar(filename)
handler = urllib2.HTTPcookieProcessor(cookie)
opener = urllib2.build_opener(handler)
response = opener.open("http://www.baidu.com")
cookie.save(ignore_discard=True, ignore_expires=True)
3、正则表达式 3.1 正则表达式语句
import re
re.compile(“正则表达式”).findall(“原字符串”)
3.2 匹配符
普通字符			正常匹配其中的字符。
n				匹配换行符。
t				匹配制表符。
w				匹配字母、数字、下划线。
W				匹配除了字母、数字、下划线的字符串。字母大写相当于非(个人总结)
d				匹配十进制数字
D				匹配除了十进制数字的字符串
s				匹配空白字符
S				匹配非空白字符
[asd213]		匹配中括号中的任意一个字符
[^asd213]		匹配中除了括号中的任意一个字符

3.3 特殊字符
.				匹配除换行符 n 之外的任何单字符。
^				匹配输入字符串的开始位置。
$				匹配输入字符串的结尾位置。 
*				前一个字符出现零次或多次。
+				前一个字符出现一次或多次。
?				前一个字符出现零次或一次。
{n}				前一个字符恰好出现n次
{n,}			前一个字符至少出现n次
{n,m}			前一个字符至少n次,至多m次
|				指明两项之间的一个选择。
()				标记一个子表达式的开始和结束位置。

3.4 贪婪模式与懒惰模式
*?				懒惰模式//?不代表0或1了
+?				懒惰模式//?不代表0或1了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/764059.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号