@chengweihuang
2018-07-24T06:36:47.000000Z
字数 1020
阅读 656
什么是爬虫?
网络爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
一 http协议
超文本传输协议,HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。(我们称这个客户端)叫用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像。(我们称)这个应答服务器为源服务器(origin server)。
1.Host头域 : Host头域指定请求资源的Intenet主机和端口号
2.Referer头域:Referer头域允许客户端指定请求uri的源资源地址,这可以允许服务器生成回退链表,可用来登陆、优化cache等。他也允许废除的或错误的连接由于维护的目的被追踪。
3.User-Agent头域:User-Agent头域的内容包含发出请求的用户信息。
二 Python的http库 requests
import requestslink='www...........'head={'user-agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36'}movie_html=requests.get(url=link,headers=head)
导入requests,使用get,传入参数(链接和请求头)
*请求头包括 user-agent *
三 Python的BeautifulSoup库
from bs4 import BeautifulSoupmovie_soup=BeautifulSoup(movie_html.content,'html.parser')
BeautifulSoup是对浏览器的返回值进行解析,解析成html文档或者xml
四对文档进行清洗
ul = soup.find('ul', class_='me1 clearfix')li = ul.find_all('li')
find() 参数是标签和 class(或者id 等其他选择器) 获取单个标签
find_all() 参数是标签 (这里没有用选择器,是因为li是从已经定位到的ul里面寻找) 获取全部标签