Python爬虫必备技巧详细总结
作者:小旺不正经 发布时间:2022-10-02 12:47:44
标签:Python,爬虫技巧
自定义函数
import requests
from bs4 import BeautifulSoup
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0'}
def baidu(company):
url = 'https://www.baidu.com/s?rtt=4&tn=news&word=' + company
print(url)
html = requests.get(url, headers=headers).text
s = BeautifulSoup(html, 'html.parser')
title=s.select('.news-title_1YtI1 a')
for i in title:
print(i.text)
# 批量调用函数
companies = ['腾讯', '阿里巴巴', '百度集团']
for i in companies:
baidu(i)
批量输出多个搜索结果的标题
结果保存为文本文件
import requests
from bs4 import BeautifulSoup
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0'}
def baidu(company):
url = 'https://www.baidu.com/s?rtt=4&tn=news&word=' + company
print(url)
html = requests.get(url, headers=headers).text
s = BeautifulSoup(html, 'html.parser')
title=s.select('.news-title_1YtI1 a')
fl=open('test.text','a', encoding='utf-8')
for i in title:
fl.write(i.text + '\n')
# 批量调用函数
companies = ['腾讯', '阿里巴巴', '百度集团']
for i in companies:
baidu(i)
写入代码
fl=open('test.text','a', encoding='utf-8')
for i in title:
fl.write(i.text + '\n')
异常处理
for i in companies:
try:
baidu(i)
print('运行成功')
except:
print('运行失败')
写在循环中 不会让程序停止运行 而会输出运行失败
休眠时间
import time
for i in companies:
try:
baidu(i)
print('运行成功')
except:
print('运行失败')
time.sleep(5)
time.sleep(5)
括号里的单位是秒
放在什么位置 则在什么位置休眠(暂停)
爬取多页内容
百度搜索腾讯
切换到第二页
去掉多多余的
https://www.baidu.com/s?wd=腾讯&pn=10
分析出
https://www.baidu.com/s?wd=腾讯&pn=0 为第一页
https://www.baidu.com/s?wd=腾讯&pn=10 为第二页
https://www.baidu.com/s?wd=腾讯&pn=20 为第三页
https://www.baidu.com/s?wd=腾讯&pn=30 为第四页
..........
代码
from bs4 import BeautifulSoup
import time
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0'}
def baidu(c):
url = 'https://www.baidu.com/s?wd=腾讯&pn=' + str(c)+'0'
print(url)
html = requests.get(url, headers=headers).text
s = BeautifulSoup(html, 'html.parser')
title=s.select('.t a')
for i in title:
print(i.text)
for i in range(10):
baidu(i)
time.sleep(2)
来源:https://blog.csdn.net/weixin_42403632/article/details/120884472


猜你喜欢
- 本文实例讲述了Python实现备份文件的方法,是一个非常实用的技巧。分享给大家供大家参考。具体方法如下:该实例主要实现读取一个任务文件, 根
- <?php/** * 发送文件 * * @author: legend(legendsky@hotmai
- 本文实例讲述了Python爬取需要登录的网站实现方法。分享给大家供大家参考,具体如下:import requestsfrom lxml im
- 前言前面已经讲了MySQL的其他查询性能优化方式,没看过可以去了解一下:MySQL查询性能优化七种方式索引潜水MySQL查询性能优化武器之链
- 单例模式是一种常见的设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派
- 想使用正则表达式来获取一段文本中的任意字符,写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本。于是查了一下手册,才发
- 1 作用注意此处Tensorflow版本是2.0+。由于本人是Pytorch用户,对Tensorflow不是很熟悉,在读到用tf写的代码时就
- 一、场景描述在项目开发过程中,应用iframe实现外系统页面嵌套的时候,发现引入其他页面后,页面内容并未刷新加载,经过一番研究,解决方案如下
- 1.使用Qt Design设计一个空白窗口(注意:我是使用MainWindow创建的窗口)2.使用PyUIC将.ui文件转换成.py文件右键
- SQL Server 2000 清理日志精品教程SQL Server 2000 数据库日志太大!如何清理SQL Server 2000的日志
- #!/usr/bin/python import os import time im
- print函数:Python中可以直接使用的函数,可以将信息展示在控制台print()函数可以输出哪些内容?print()函数输出的内容可以
- Python关键字 global与nonlocalglobaldef test(): #1函数内如果没定义x,则x默认为全局变量
- 前言:Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开
- Python 包含6种数据类型,其中Number(数字)、String(字符串)、Tuple(元组)、List(列表)、Dictionary
- 1. 检查mysql服务是否启动,如果启动,关闭mysql服务运行命令:ps -ef | grep -i mysql如果开着就运行关闭的命令
- 方法1: 代码如下:truncate table TableName 删除表中的所有的数据的同时,将自动增长清零。 如果有外键参考这个表,这
- 因为一些原因,卸载了Anaconda2的版本,转向3..发现Jupyter挂了.百思不得其解.后来了解到是因为内核找不到的问题导致的.这里整
- 我的电脑本来是有手动CMake+make安装的OpenCV3的,以及系统自带的python2.x,但是现在想用python3+OpenCV3
- 这次让我们一个用 Python 做一个小工具:将动态 GIF 图片倒序播放!GIF(Graphics Interchange Format)