一、bs4实现

import requests
from urllib import parse
from bs4 import BeautifulSoup
import timeheaders={
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}def getPage(url):try:re=requests.get(url,headers=headers)re.encoding=re.apparent_encodingreturn re.textexcept:print(re.status_code)def parsePage(text):soup=BeautifulSoup(text,'lxml')content=soup.select('div .result')for item in content:try:title=item.select('h3 a')[0].texthref=item.select('h3 a')[0]['href']abstract=item.select('.c-abstract')[0].textprint("{}-{}\n{}".format(title,abstract,href))except:pass# baiketry:bk=soup.select("div .result-op .op-bk-polysemy-piccontent")[0]baike_abstract=bk.select('p')[0].text.strip()baike_title=soup.select('.result-op .c-gap-bottom-small a')[0].text.strip()baike_href=soup.select('.result-op .c-gap-bottom-small a')[0]['href']print("{}-{}\n{}".format(baike_title,baike_abstract,baike_href))except:pass# 其他人还在搜try:items=soup.select("div .result-op .list_1V4Yg a")print("其他人还在搜>>>")for item in items:e_title=item.texte_href=parse.urljoin('http://www.baidu.com',item['href'])print(e_title,e_href)except:passif __name__ == '__main__':word=parse.quote(input('请输入关键字:'))pn=int(input("请输入爬取的页数:"))for i in range(pn):print("开始爬取第%d页>>>"%(i+1))url=f'http://www.baidu.com/s?wd={word}&pn={i*10}'text=getPage(url)parsePage(text)time.sleep(2)

二、正则表达式实现

import requests
import re
from urllib import parse
import timedef getPage(url):try:re=requests.get(url)re.encoding=re.apparent_encoding# with open('02_regex_baidu.html','w',encoding='utf8') as f:#     f.write(re.text)return re.textexcept:print(re.status_code)
def parse_page(html):content=re.findall(r'{"?title"?:("|\')(.*?)("|\'),"?url"?:("|\')(.*?)("|\')}',html)# baike=re.findall(r'{title:\'(.*?)\',url:\'(.*?)\'}',html)# print(content)for item in content[:-1]:print("{}\n{}".format(item[1],item[4]))# 其他人都在搜try:everybody=re.findall(r'href="(/s.*?oq=)">([-_\w\u2e80-\u9fff]+)',html)print("其他人都在搜...")for item in everybody:e_href=parse.urljoin("http://www.baidu.com",item[0])e_title=item[1]print(e_title,e_href)# 第二种方法'''everybody2=re.finditer(r'href="(/s.*?oq=)">([-_\w\u2e80-\u9fff]+)',html)print("其他人都在搜...")for item in everybody2:e2_title=item.group(2)e2_url=parse.urljoin("http://www.baidu.com",item.group(1))print(e2_title,e2_url)'''except:passif __name__ == '__main__':word=parse.quote(input("请输入关键字:"))pn=int(input("请输入想爬取的页数:"))for i in range(pn):print("开始爬取第%d页>>>"%(i+1))url=f"http://www.baidu.com/s?wd={word}&pn={i*10}"html=getPage(url)parse_page(html)time.sleep(2)

Python爬虫百度搜索相关推荐

  1. python模拟百度搜索点击链接_用 Python 获取百度搜索结果链接

    前言 近期有许多项目需要这个功能,由于Python实现起来比较简单就这么做了,代码贴下来觉得好点个赞吧~ 代码 # coding: utf-8 import os import time import ...

  2. python模拟百度搜索点击链接_python采集百度搜索结果带有特定URL的链接代码实例...

    这篇文章主要介绍了python采集百度搜索结果带有特定URL的链接代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 #coding utf-8 ...

  3. Python爬虫百度云加速验证码问题

    Python爬虫百度云加速验证码问题 问题描述 解决思路 实现代码 最终结果 问题描述 第一篇博文:低手,刚学,求勿喷. 前段时间,使用爬虫访问一个磁力链接下载网站(target_url),收集电影下 ...

  4. python爬虫-百度/360搜索

    原理: 百度搜索的url为 http://baidu.com/s?wd=搜索内容 360搜索的url为 www.so.com/s?q=搜索内容 百度搜素 import requests #keywor ...

  5. python爬虫百度百科-python爬虫(一)_爬虫原理和数据抓取

    本篇将开始介绍Python原理,更多内容请参考:Python学习指南 为什么要做爬虫 著名的革命家.思想家.政治家.战略家.社会改革的主要领导人物马云曾经在2015年提到由IT转到DT,何谓DT,DT ...

  6. Python爬虫——百度+新浪微盘下载歌曲

    本篇分享将讲解如何利用Python爬虫在百度上下载新浪微盘里自己想要的歌手的歌曲,随便你喜欢的歌手! 首先我们先探索一下我们操作的步骤(以下载Westlife的歌曲为例):打开百度,输入"W ...

  7. python爬取热门新闻每日排行_用python查看百度搜索中今日热点事件排行榜

    大家好,我是咿哑呀.我们知道,在百度搜索中,查看今日热点事件排行榜时,可以打开网址"http://top.baidu.com/buzz?b=341&c=513&fr=topb ...

  8. python爬虫百度地图_零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(基础篇)...

    实现目的:爬取昆明市范围内的全部中学数据,包括名称.坐标. 先进入基础篇,本篇主要讲原理方面,并实现步骤分解,为python代码编写打基础. 因为是0基础开始,所以讲得会比较详细. 如实现目的所讲,爬 ...

  9. python爬虫之搜索51job并存入mysql数据库

    简介 在python爬虫之51job工作搜索我们只是通过python函数将其简单打印,在此我们将其进行封装成类,打印并写入mysql数据库中. 因此我们首先需要设计mysql的库和表结构,在此我们只用 ...

最新文章

  1. 火爆的图机器学习,2020年将有哪些研究趋势?
  2. 普通进程的守护进程化
  3. 应届硕士研究生算法岗秋招总结
  4. SAP Fiori Elements 框架里 Smart Table 控件的工作原理介绍
  5. CSS3的常用属性(一)
  6. java 一致性hash算法 均衡分发_Dubbo一致性哈希负载均衡的源码和Bug,了解一下?...
  7. DP! | 不要怂!
  8. 机器学习(1)PLA
  9. 燕十八MySQL优化学习笔记
  10. 地球上第一款测身高的安卓手机应用——AR 测身高
  11. 鸿蒙方舟UI开发框架-eTS状态管理
  12. NY145 聪明的小柯
  13. 逆波兰式-C++实现方法
  14. 解决:win10打印机连上,但是控制面板显示未指定
  15. 用 Python 解数独(Sudoku)
  16. 老兵成新秀,科大讯飞能否“嗨唱“车联网?
  17. qt: exec()的用法,accept()和accepted的概念
  18. 数字信号处理 --- 用离散傅里叶变换(循环卷积)实现线性卷积(个人学习笔记)
  19. 51 单片机数据存储
  20. 批量ping网段内的主机

热门文章

  1. 成功解决SQL server服务,远程过程调用失败
  2. Python语言学习:解决python版本升级问题集合(python2系列→Python3系列)导致错误的总结集合
  3. DL之GAN:生成对抗网络GAN的简介、应用、经典案例之详细攻略
  4. JAVA多线程提高十四: 面试题
  5. 数据结构-串操作应用之词索引表
  6. Linux 下如何安装软件?
  7. trackr: An AngularJS app with a Java 8 backend – Part IV 实践篇
  8. hdu 4352 XHXJ's LIS
  9. iOS - 让view触发点击事件
  10. URAL 1014 Product of Digits