您的位置:首页 > 编程语言 > Python开发

python-单线程爬虫

2016-07-24 21:30 519 查看

1.正则表达式

1)基本概念
import re
re.findall返回列表,不需要先进行compile,findall函数中调用了compile

re.search().group(0),找到一个后就不会再找了

re.sub 替换的功能

查找数字re.findall('(/d+)', s)

.* 贪心算法,匹配尽可能多的字符;

.*? 非贪心算法;

() 括号内是需要返回的内容;

. 匹配任意字符,'\n'除外,可以用re.S包括换行符;

? 和前面一样一个或0个字符;

* 和前面一样一个或多个字符.

2)应用举例

1 匹配多段内容

先大再小

2 实现换页

用sub,ps: python 中range包含前一个,不包含后一个(2,3)即为[2]

3)制作文本爬虫,一个简单的例子:将一个网页的html下下来之后,匹配其中的图片的链接,然后将图片down下来

import re
import requests

print (__name__)
f = open('xxxx.html', 'r')
html = f.read()
f.close()

# 匹配图片地址
pic_url = re.findall('img src"(.*?)" class=lessonimg', html, re.S)
i = 0
for each in pic_url:
print ("now downloading:")
pic = requests.get(each)
fp = open("D:\My test\python\test1\pic" + str(i) +'.jpg', 'wb')
fp.write()
fp.close()
i += 1


2.requests的安装和介绍

完美的替代了python的urllib2模块。

我在pycharm import之后发现是可以用的,不知道是pycharm安装了还是之前装过,路径在/python/lib/site-packages/request-2..py3.5.egg/requests/ 也可能是python3.5的特性。

安装方法 1)单文件安装,将文件拷贝到/lib/下 2)多文件安装 ,解压后进入模块文件夹,执行:python setup.py install 3)pip install requests 或者 python -m pip install XXX 4)easy_install ,多用pip

包含大多数python第三方文件的网站: http://www.lfd.uci.edu/~gohlke/pythonlibs/

3.第一个网页爬虫

# -*- coding:utf-8 -*-
import re
import requests
# 获取网站源代码,有的网站限制了只能浏览器访问,需要修改我们访问的headers,在要访问的网页中可以用审查元素找到
# headers = {User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36}
# html = requests.get('http://tieba.baidu.com', headers=headers)
html = requests.get('http://tieba.baidu.com')
image_name = re.findall('img_title">(.*?)</p>', html.text, re.S)
# 将图片的标题打印出来
for each in image_name:
print each
print html.text


4.向网页提交数据

get与post:

get从服务器获取数据;post向服务器提交数据;get通过构造url的参数实现功能;post将数据放在header中

练习网站: http://www.crowdfunder.com,极客学院的视频这个网址还是用post方式进行换页的,现在换成了get的方式,why.....

5.实战-极客学院课程爬虫

将首页的前20页课程的名字,介绍,时间,等级,参加人数 爬取下来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: