爬虫实战02 |
您所在的位置:网站首页 › python爬百度贴吧 › 爬虫实战02 |
爬虫实战02--百度贴吧
01、运行环境02、开始爬虫02-1、爬取的内容02-2、开始抓取内容02-2-1、首先02-2-2、接下来02-2-3、没结果
02-3、JS渲染后的页面无法抓取02-4、明确一点
03、再次开始爬虫!~~03-1、基础信息03-2、提取信息03-2-1、提取文本03-2-2、提取图像
04、完整代码(面向对象版)05、结语:
01、运行环境
# 操作系统:win10 专业版
pycharm professional 2019.1
python 3.8
lxml == 4.5.1
requests == 2.23.0
xpath == 2.0.2
02、开始爬虫
02-1、爬取的内容
百度贴吧的标题以及里面的图片。 在爬取的过程中遇上了反爬(JS渲染后的页面无法抓取。),附上解决方案。 地址: url = https://tieba.baidu.com/f?kw=lol&ie=utf-8&tab=main&pn=0& 02-2、开始抓取内容 02-2-1、首先在浏览器里面打开检查模式,然后用Google的擦肩Xpath去获取内容,再也中显示的是正常的,获取到了我们需要的内容。 我们就在pycharm里面编写代码,解析页面,基于lxml和xpath获取内容。下面是代码: # 代码 # 爬取百度贴吧标题和图片 import requests from lxml import etree url = 'https://tieba.baidu.com/f?kw=lol&ie=utf-8&tab=main' headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36" } response = requests.get(url=url,headers=headers) resstr = response.content.decode() html = etree.HTML(resstr) textlist = html.xpath("//ul/li//div[@class='threadlist_abs threadlist_abs_onlyline']/text()") print(textlist) 02-2-3、没结果但是获取的结果是空的列表。 这里是一个空的列表,就是没有数据。检查过代码,逻辑,代码都是正确的,但是就是没有获取到数据。这就是我们遇到了反爬!! -------(JS渲染后的页面无法抓取。) 所以接下来,我们就要去解决问题! 02-4、明确一点重点—重点—重点—重点—重点—重点— 1、爬虫爬取页面不是以我们在页面右键检查看到的页面的。是以浏览器给我们返回的响应页面为爬取目标的!!! 重点—重点—重点—重点—重点—重点—
所以一切从头开始!!! 03、再次开始爬虫!~~ 03-1、基础信息 url = https://tieba.baidu.com/f?kw=lol&ie=utf-8&tab=main&pn=0&解决方案: 切换到手机端进行抓取。 同时把 User-Agent 也要改变!!! # headers = { # "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36" } # 我们现在切换到手机模式下面,这一个"User-Agent"也要响应的改变, headers = { "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1" } 03-2、提取信息 03-2-1、提取文本
最后获取的信息是以打印的方式展现的! 05、结语:个人记录,新手入门,多多学习,欢迎大家交流探讨! 个人网站: http://106.54.78.238/ song_of _sea的个人网站 http://106.54.78.238/ |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |