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

爬取网络:当当网
代码

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数据保存成功")

结果:
运行结果
开头
结尾

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高山莫衣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值