python爬取当当网top500(排名+超链接+书名)

sicau_djx/APspider...

无意间在Git搜到的爬虫实例

python爬取当当网top500(排名+超链接+书名)_第1张图片

应该是前辈几个月前弄出来的东西了的缘故,直接贴来运行报错,检查发现正则已经不能完美匹配到现存的网页了

打算自己写一个吧

小破站阿婆主推荐的正则检查生成器真的太好用了叭!

https://regex101.com/

python爬取当当网top500(排名+超链接+书名)_第2张图片

通过仅剩的一点文件操作知识

将解析出的文本写入一个文件

def write_in(item):
    paiming,chaolian,name = item
    with open('book.txt','a',encoding='utf-8') as f:
        f.write('排名:' + paiming + '\n')
        f.write('链接:' + chaolian + '\n')
        f.write('书名:' + name + '\n')
最后得到的效果是这样的

python爬取当当网top500(排名+超链接+书名)_第3张图片

强大的工具

当然还可以提取出更多的信息,简单修改正则...完成

最后附上源码,希望各位“评委”批评指正!

 

import requests
import re

def write_in(item):
    paiming,chaolian,name = item
    with open('book.txt','a',encoding='utf-8') as f:
        f.write('排名:' + paiming + '\n')
        f.write('链接:' + chaolian + '\n')
        f.write('书名:' + name + '\n')
for i in range(1,26):

    url = 'http://bang.dangdang.com/books/fivestars/01.00.00.00.00.00-recent30-0-0-1-' + str(i)
    response = requests.get(url)
    # print(response.text)
    html = response.text
    items = re.findall('(\d{1,3}).
\s+
',html) for item in items: print(item) print('开始写入-->' + str(item)) write_in(item)

 

你可能感兴趣的:(学习,大学)