网页的构成
- HTML:<>,类似于房间中的“结构”,如客厅与卧室的区别;
- CSS:< div class="">,类似于房间中的“样式”,如房间的装修,墙壁什么颜色,地板是什么颜色的;
- JavaScript:<script >,类似于房间中的“功能”,如房间中的电视、电灯。
我们爬虫主要是爬HTML+CSS。
<div > < /div >
div代表网页区域的意思,代表在该区域能装什么东西;
例:
< div class="a">
< p>wow!< /p>
< /div >
引申:P 写入文字;li 写入列表;img插入图;h1-h6代表不同字号的字体;a href =""写入网页链接
实际上用div来区分,主要分三个部分:header、content和footer。
在header又分LOGO和导航;
在content又分图片、title和description;
Paste_Image.png
解析网页中的元素
解析库有(html.parser / lxml HTML / lxml XML / html5lib)
爬取网站的主要分两步:
第一步是服务器与本地的交换机制
- 平常我们浏览页面都是先请求服务器(Request),然后服务器再回应(Response)。
- 向服务器请求的Request行为实际上包含了不同的方法,而我们爬取网页只需要get和post的方法。代码举例:get/page_one.html http/1.1 host:www.sample.com
- 服务器向我们回应的Response行为,如果反馈结果是status_code:200说明反馈成功,如果是404或者403就失败了。
第二步是解析真实网页的方法
(案例网址:http://www.tripadvisor.cn/Attractions-g60763-Activities-New_York_City_New_York.html)
- 导入我们需要的库
- 粘贴我们需要爬取的网址
- 使用Request向服务器请求获取网页内容
- 使用BeautifulSoup解析网页
- 描述要爬取的元素位置
- 整理并筛选所选信息
- 反爬虫处理(伪造Cookie信息,构造想服务器提交的参数:headers)
- 构造函数
- 爬取连续多页的信息
- 模拟手机页面获取反爬取信息
网友评论