百度网页关键字抓取(如何实现搜索关键字()??(附答案))

优采云 发布时间: 2022-02-16 09:20

  百度网页关键字抓取(如何实现搜索关键字()??(附答案))

  2、如何实现搜索关键字?

  ???通过URL我们可以发现,我们只需要在kw=()的括号中输入你要搜索的内容即可。这将用 {} 替换它,稍后我们将循环遍历它。

  【五、项目实施】

  1、创建一个名为BaiduImageSpider的类,定义一个main方法main和一个初始化方法init。导入所需的库。

  import requests

from lxml import etree

from urllib import parse

class BaiduImageSpider(object):

def __init__(self, tieba_name):

pass

def main(self):

pass

if __name__ == ‘__main__‘:

inout_word = input("请输入你要查询的信息:")

spider.main()

pass

if __name__ == ‘__main__‘:

spider= ImageSpider()

spider.main()

  2、准备url地址和请求头来请求数据。

  import requests

from lxml import etree

from urllib import parse

class BaiduImageSpider(object):

def __init__(self, tieba_name):

self.tieba_name = tieba_name #输入的名字

self.url = "http://tieba.baidu.com/f?kw={}&ie=utf-8&pn=0"

self.headers = {

‘User-Agent‘: ‘Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)‘

}

‘‘‘发送请求 获取响应‘‘‘

def get_parse_page(self, url, xpath):

html = requests.get(url=url, headers=self.headers).content.decode("utf-8")

parse_html = etree.HTML(html)

r_list = parse_html.xpath(xpath)

return r_list

def main(self):

url = self.url.format(self.tieba_name)

if __name__ == ‘__main__‘:

inout_word = input("请输入你要查询的信息:")

key_word = parse.quote(inout_word)

spider = BaiduImageSpider(key_word)

spider.main()

  3、使用 xpath 进行数据分析

  ?3.1、chrome_Xpath 插件安装

  ???1) 这里用到了一个插件。它可以快速检查我们爬取的信息是否正确。具体安装方法如下。

  ?? 2)百度下载chrome_Xpath_v2.0.2.crx,chrome浏览器输入:chrome://extensions/

  

  ???3)将chrome_Xpath_v2.0.2.crx直接拖到扩展页面;

  ?? 4) 如果安装失败,弹出框提示“Cannot add applications, extensions and user scripts from this 网站”,如果遇到这个问题,解决方法是:打开开发者模式,把crx文件(直接或者后缀修改为rar)并解压到一个文件夹中,点击开发者模式加载解压后的扩展,选择解压后的文件夹,点击确定,安装成功;

  3.2、chrome_Xpath 插件使用

  上面我们已经安装了 chrome_Xpath 插件,接下来要使用它。

  1) 打开浏览器,按下快捷键F12。

  2) 如下图所示选择元素。

  

  ???3) 右击选择“复制XPath”,如下图所示。

  

  3.3、编写代码获取链接功能。

  ???上面我们已经获得了链接函数的Xpath路径,然后定义了一个链接函数get_tlink,并继承self实现多页爬取。

   ‘‘‘获取链接函数‘‘‘

def get_tlink(self, url):

xpath = ‘//div[@class="threadlist_lz clearfix"]/div/a/@href‘

t_list = self.get_parse_page(url, xpath)

# print(len(t_list))

for t in t_list:

t_link = "http://www.tieba.com" + t

‘‘‘接下来对帖子地址发送请求 将保存到本地‘‘‘

self.write_image(t_link)

  4、保存数据

  这里定义了一个 write_image 方法来保存数据,如下所示。

  ‘‘‘保存到本地函数‘‘‘

def write_image(self, t_link):

xpath = "//div[@class=‘d_post_content j_d_post_content clearfix‘]/img[@class=‘BDE_Image‘]/@src | //div[@class=‘video_src_wrapper‘]/embed/@data-video"

img_list = self.get_parse_page(t_link, xpath)

for img_link in img_list:

html = requests.get(url=img_link, headers=self.headers).content

filename = "百度/"+img_link[-10:]

with open(filename, ‘wb‘) as f:

f.write(html)

print("%s下载成功" % filename)

  注意:@data-video 是 URL 中的视频,如下图所示。

  

  【六、效果展示】

  ???1、点击运行,如下图(请输入您要查询的信息):

  ?? 2、 以吴京为例输入,回车:

  

  ???3、将图片下载保存在名为“百度”的文件夹中,此文件夹需要提前在本地创建。一定要记得提前在当前代码的同级目录下新建一个名为“Baidu”的文件夹,否则系统将找不到该文件夹​​,并报错“Baidu”文件夹找不到成立。

  

  ?? 4、下图中的MP4是评论区的视频。

  

  【七、总结】

  1、不建议爬取太多数据,容易造成服务器负载,试试看吧。

  2、本文基于python网络爬虫,使用爬虫库爬取*敏*感*词*评论区。对于Python爬取*敏*感*词*的一些困难,给出详细的解释,并提供有效的解决方案。

  3、欢迎大家积极尝试。有时候很容易看到别人实现它,但到了自己实现的时候,总会遇到各种各样的问题。不要无知,用心去做,你才能更好地理解它。深刻的。学习使用 requests 库和编写爬虫程序。

  4、通过这个项目,你可以更快的得到你想要的信息。

  5、需要本文源码的可以后台回复“*敏*感*词*”字样获取。

  看完这篇文章你有收获吗?请转发并分享给更多人

  IT 共享家庭

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线