首页 > 编程语言 >python 网络爬虫技术 运用正则表达式爬取当当网(实战演练)

python 网络爬虫技术 运用正则表达式爬取当当网(实战演练)

时间:2023-06-08 13:04:29浏览次数:52  
标签:write sheet headee python 当当网 爬取 url result print


爬取网络:当当网
代码

import re
import requests
import time
import xlwt


url_basic = 'http://search.dangdang.com/?key='

heads = {
     'Connection': 'keep-alive',
    'Accept-Language': 'zh-CN,zh;q=0.9',
     'Accept': 'text/html,application/xhtml+xml,application/xml;\
     q=0.9,image/webp,image/apng,*/*;q=0.8',
     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36\
    (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
}


xinxi = []
for i in range(18):  ##进入当当网,查看有多少页,将循环次数换成页数
    try:
        key = "多元统计分析"  #换成任何你想要搜索的书籍
        url = url_basic +key+"&act=input&page_index=" + str(i+1)
        print(url)
        response = requests.get(url, headers = heads)
        
        content = response.text
     
        pattern = re.compile('<li.*?<a title="(.*?)".*?>.*?search_now_price">.*?(\d+\D\d+)</span>.*?search_pre_price">.*?(\d+\D\d+)</span>.*?<a href=.*?ddclick=.*?>(\d+).*?</a>.*?<a href=.*?>(.*?)</a>.*?</span>.*?</li>',re.S)

        results = re.findall(pattern, content)
        xinxi += results
        #print(results)
        #print(response)
        print("获取成功")
        i += 1
        time.sleep(1)
    except:
        break
#print(xinxi)       

##将结果存储为excel表,若执行此步,请在idle环境运行,若直接输出或者文本输出,请查看我的上或下一条博文
headee = ["序号","名称","现价","原价","评论数","作者/出版社"]
with open(r"C:\Users\AdamCY\Desktop\wenjian\python爬虫\py_beiyesi.xlsx", "w") as file:   
    file = xlwt.Workbook()  
    sheet = file.add_sheet('sheet_1')  
    sheet.write(0, 0, headee[0]) 
    sheet.write(0, 1, headee[1])
    sheet.write(0, 2, headee[2])
    sheet.write(0, 3, headee[3])
    sheet.write(0, 4, headee[4])
    sheet.write(0, 5, headee[5])
    i = 0
    s = 1
    for result in xinxi:
        sheet.write(i+1, 0, s)  
        sheet.write(i+1, 1, result[0])
        sheet.write(i+1, 2, result[1])  
        sheet.write(i+1, 3, result[2])
        sheet.write(i+1, 4, result[3])  
        sheet.write(i+1, 5, result[4])
        s += 1
        i += 1
file.save(r"C:\Users\AdamCY\Desktop\wenjian\python爬虫\py_beiyesi.xlsx")
print("excel数据保存成功")

结果:

python 网络爬虫技术  运用正则表达式爬取当当网(实战演练)_python


python 网络爬虫技术  运用正则表达式爬取当当网(实战演练)_正则表达式_02


python 网络爬虫技术  运用正则表达式爬取当当网(实战演练)_当当网_03


标签:write,sheet,headee,python,当当网,爬取,url,result,print
From: https://blog.51cto.com/guog/6439025

相关文章

  • CART——Classification And Regression Tree在python下的实现
    分类与回归树(CART——ClassificationAndRegressionTree))是一种非参数分类和回归方法,它通过构建二叉树达到预测目的。示例:1.样本数据集 2.运行结果-cart决策树的字典max_n_feats=3时tree_dict={house:{yes:agreen......
  • centos执行python脚本
    CentOS下载pyhon当pip下载失败,应该是版本太低了此时需要升级pip:#pip3执行pip3install--upgradepip#pip执行pipinstall--upgradepip#如果上面升级失败,可以试试python-mpipinstall--upgrade--forcepip解决方法1如果在升级过程中报标题中的错误,则通过g......
  • python selenium 浏览器操作 鼠标操作 键盘操作
    窗口截屏#截图driver.get_screenshot_as_file("C:\\Users\\95744\\Desktop\\test01\\test.png")关闭浏览器webdriver.quit()获取当前urldriver.current_url浏览器前进、后退、刷新#后退driver.back()#前进driver.forward()#刷新driver.refresh()......
  • python Qt实现最简单的程序
    1、创建一个程序,实例一个对象2、让这个对象跑起来3、创建组件4、设置标题5、展示出来点击查看代码fromPySide2.QtWidgetsimportQApplication,QMessageBoxfromPySide2.QtUiToolsimportQUiLoaderif__name__=="__main__":app=QApplication(sys.argv)w......
  • python 日志
    在自动化测试中,可以使用以下几种方式记录日志:1.使用内置的`print()`函数:#在需要记录日志的地方使用print()函数输出日志信息print("这是一条日志信息")2.使用标准库中的`logging`模块:importlogging#配置日志输出格式和级别logging.basicConfig(level=logging.INFO......
  • 【python基础】循环语句-break关键字
    1.break关键字break关键字,其作用是在循环中的代码块遇到此关键字,立刻跳出整个循环,执行循环外的下一条语句。其在while和for循环中的作用示意图如下:1.1break在while循环中的使用1.1.1不加else语句比如我们通过键盘输入单词,输出刚才的单词,编写程序如下所示:我们发现当我们输......
  • Python+Redis学习笔记
    首先,通过pip来安装操作redis的相关包,pipinstallredis然后导入我们要使用的模块,formredis.ClientimportRedis然后,通过docker启动redis,fromredis.clientimportRedisr=Redis(host="0.0.0.0",port=6379,db=0,password="")#r.set("kol_height",187)res=r.......
  • python 解析HTML和XML文档
    一、BeautifulSoupBeautifulSoup是一个Python包,用于解析HTML和XML文档。它可以快速而方便地从网页中提取信息,并以易于使用的方式对其进行处理。它支持各种解析器,包括内置的Python解析器和第三方解析器,例如lxml和html5lib。二、对标签提取代码示列以下是使用BeautifulSoup解析H......
  • 初步了解的python的正则表达式
    Python正则表达式|菜鸟教程(runoob.com)Python正则表达式 regex正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python自1.5版本起增加了re模块,它提供Perl风格的正则表达式模式。re模块使Python语言拥有全部的正则表达式功能......
  • #yyds干货盘点#用Python实现简单的图像识别
    在这篇文章中,我们将使用Python和TensorFlow来实现一个简单的图像识别系统。我们将使用经典的MNIST数据集,这是一个包含手写数字的数据集,用于训练和测试图像识别系统。一、准备环境首先,我们需要安装所需的库。在这里,我们将使用TensorFlow和Keras。您可以使用以下命令安装这些库:pip......