进入某网页的步骤分为
- 域名解析,找到域名对应的ip地址
- 向ip地址的服务器发送请求
- 服务器响应,返回内容(html/json
- 浏览器解析网页内容
爬虫即实现浏览器功能,通过发送请求而后解析内容返回自己想要的
解决如何请求和解析就可以了
请求先看看那个网页F12查看一下Network中发送的请求(如果只是获取页面内容的话,单纯像我练习里一样,就是直接get请求了
解析我认为重点是正则表达式,对样式class name id的取用方法要有了解,多加尝试
先入个门吧,这个是作为爬虫新手的必要练手网站
http://news.163.com/special/000120FU/test080617.html
抓取页面
request请求是必要的,导包,写个方法表示爬取页面,用utf-8解码即可,这里我们已经完成了上述讲的23步骤,获取页面只用最简单的get即可
get(url)得到一个res,请求状态,content获得返回的内容再通过utf-8解码即可
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import requests def Spider(url): print("拉取",url) page = requests.get(url).content.decode("utf-8")View Code
用print(page)打印查看
![](/i/l/?n=22&i=blog/1632861/202210/1632861-20221011165209742-1734771286.png)
分解
我们主要爬取的是如下的每个标题下的新闻,F12查看源码找到这个标签的html代码块
可以看到作为卡片标题的全站、新闻、娱乐等等,都是一个class为titleBar的div标签内的h2标签,而后是一个left、right作为点击榜和跟贴榜
把代码块复制出来,这一段除了whole、全站和a中的链接部分,均是一样的,用.*?正则代替取出
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<div class="titleBar" id="whole"> <h2>全站</h2> <div class="more"> <a href="http://news.163.com/special/0001386F/rank_whole.html">更多</a> </div> </div>View Code 标签:xpath,python,list,item,scrapy,html,new From: https://www.cnblogs.com/Aaaamber/p/16779826.html