python网络爬虫抓取数个最优链接展示

news/2024/7/19 10:13:03 标签: python, 爬虫

python_0">python网络爬虫抓取数个最优链接展示(百度抓取)

文章目录

  • python网络爬虫抓取数个最优链接展示(百度抓取)
  • 前言
  • 一、库声明
  • 二、步骤
    • 1.引入库
    • 2.获取命令行参数
    • 3.找到查询的结果
    • 4.打开浏览器
  • 三、完整代码


前言

今天试一下python网络爬虫的链接抓取实战,一起来试一下


一、库声明

我们这次需要用到requests,sys, webbrowser,bs4,os库,如果没有库的小伙伴可以看我这个博文,pip快速安装各种库

二、步骤

1.引入库

代码如下(示例):

python">import requests,sys, webbrowser,bs4,os

2.获取命令行参数

如果有小伙伴问,什么是命令行参数?请看我的一些理解与解释,希望可以帮你梳理一下思路
1、 什么是命令行的参数?
如:我在cmd里面,输入了1.路径文件后,2.加上空格,3.再加上后面输入的参数,这个3,就是命令行参数的主要组成部分(前面还附带了文件名,看不懂没关系,我们上图!!!不啰嗦)

在这里插入图片描述

这是代码

代码如下

python">res=requests.get('http://www.baidu.com/s?wd='+''.join(sys.argv[1:]))
    print(sys.argv[0])
    print(sys.argv[1])
    print(sys.argv[2])
    print(sys.argv[3])
    print(sys.argv[0:])
    print(sys.argv[1:])

对应起来看,大家会发现命令行参数就是在你输入的参数前,再加上文件名字作为sys.argv[0],依次按照顺序构成列表,看到这里,相信大家应该可以明白命令行参数的基本构成了,那么我们继续!(因为考虑到可能并不是每个人都喜欢用cmd,来输入命令行进行运行程序,所以,我特地安排了在python IDLE中也同样可以输入命令运行,希望可以方便到大家。)

3.找到查询的结果

python">search=input('请输入你要查找的内容')
    res=requests.get('http://www.baidu.com/s?wd='+search)#用requests.get获得
res.encoding='utf-8'
res.raise_for_status()#检验是否已经连接
soup=bs4.BeautifulSoup(res.text,'lxml')#后面记得写这个lxml显式指定语法分析器
linkElems=soup.select('div.result h3.t > a')#百度和谷歌的select输入并不相同

4.打开浏览器

python">numOpen=min(5,len(linkElems))#这里我们只获得5条网页返回
for i in range(numOpen):
    webbrowser.open(linkElems[i].get('href'))

三、完整代码

python">#! python3
import requests,sys, webbrowser,bs4,os
if len(sys.argv)>1:
    res=requests.get('http://www.baidu.com/s?wd='+''.join(sys.argv[1:]))
else:
    search=input('请输入你要查找的内容')
    res=requests.get('http://www.baidu.com/s?wd='+search)
res.encoding='utf-8'
res.raise_for_status()
os.chdir(r'C:\Users\LX\Desktop')
soup=bs4.BeautifulSoup(res.text,'lxml')
linkElems=soup.select('div.result h3.t > a')
numOpen=min(5,len(linkElems))
for i in range(numOpen):
    webbrowser.open(linkElems[i].get('href'))

最后展示一下显示结果,先方法一,不用命令行参数

在这里插入图片描述
在这里插入图片描述

方法二,用命令行参数

在这里插入图片描述
在这里插入图片描述

可以看到,再次打开5个页面
这次就到这里,谢谢大家


http://www.niftyadmin.cn/n/773192.html

相关文章

五行代码python 创建Excel(xls)文件以及数据写入

五行代码python 创建Excel(xls)文件以及数据写入 今天我们采用xlwt来快速创建Excel的文件,一起来看一下代码。 import xlwt new_workbookxlwt.Workbook() worksheet new_workbook.add_sheet(myTest) worksheet.write(0,0,xuhao) new_workbook…

Python Error解决方案1--DeprecationWarning: Call to deprecated function get_sheet_by_name

Python Error解决方案1–DeprecationWarning: Call to deprecated function get_sheet_by_name 文章目录Python Error解决方案1--DeprecationWarning: Call to deprecated function get_sheet_by_nameget_sheet_names()与get_shetet_by_name()的舍弃get_sheet_names()与get_she…

background-position属性值

background-position 可能的属性值top center bottom left right background-size

几个链接搞定你想要的HEX颜色和RBG

几个链接搞定你想要的HEX颜色和RBG 如果没有你想要的。那么下一步。 颜色代码大全: 1 白颜色 #FFFFFF 2 红颜色 #FF0000 3 绿颜色 #00FF00 4 蓝颜色 #0000FF 5 牡丹红 #FF00FF 6 青颜色 #00FFFF 7 黄颜色 #FFFF00 8 黑颜色 #000000 9 海颜蓝 #70DB93 10 巧克力色 #5…

栈实现中缀表达式求解

算术表达式有三种:中缀表达式、前缀表达式、后缀表达式,日常用的算术表达式为中缀表达式,其计算数值虽然一目了然,却不容易被计算机解释,其主要原因是在中缀表达式中,各运算符的优先级不同,不能…

Python Error解决方案AttributeError: ‘ReadOnlyWorksheet‘ object has no attribute ‘get_highest_row‘

Python Error解决方案AttributeError: ‘ReadOnlyWorksheet’ object has no attribute ‘get_highest_row’ 报错信息: sheet.get_highest_row()和sheet.get_highest_column()在多年前就已经弃用了,现在用的是: sheet.max_row和sheet.colu…

Python Error解决方案:from openpyxl.cell import get_column_letter, column_index_from_string ImportError

Python Error解决方案:from openpyxl.cell import get_column_letter, column_index_from_string ImportError 当想用openpyxl连接Excel时,或许你想用get_column_letter(1)这种的,进行相应的转换,但是在导入了库:from …

计算机组成原理之字和字节

字节(Byte /bait/ n. [C])是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于有八位, 也表示一些计算机编程语言中的数据类型和语言字符。 "字"由若干个字节构成,字的位数叫做字长&#…