第一个爬虫程序

本文记录了作者初次尝试使用request和bs4库进行简单的网页爬取练习,通过pandas展示数据。在过程中发现Python中对象引用与Java的不同,即在循环外定义的对象在for循环中会被所有数据覆盖。此外,尝试爬取微博内容时遇到困难,由于微博内容是通过ajax动态加载,无法直接抓取,作者计划后续研究如何解决这个问题,以实现爬取微博内容的目标。

看了一些教程视频,所以今天做一个简单的爬虫练习
用的是request+bs4
request用于获取网页内容
bs4用于截取需要的网页内容
pandas用于展示获取到的数据


import requests
import pandas
from bs4 import BeautifulSoup
import sqlite3

res = requests.get('https://www.btime.com/?src=tab_web')
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
content = soup.select('.list-group-recommend')
print(content)

#获取对象内容
all = content[0].select('a')
# print(all[2].text)
obj_arr = []

#all['title'] = content[0].select('a')['title']
for a in all:
    obj = {}
    obj['link'] = a['href']
    obj['title'] = a['title']
    obj_arr.append(obj)

print(obj_arr)

df = pandas.DataFrame(obj_arr)
df

结果为:
这里写图片描述

注意一点 python中对对象的引用和java有些区别,当我将对象定义在循环外时,for循环将数据作为对象的属性放入集合中,但是获取到的集合都是同一条数据。但是在java中这样做是没有问题的。

另外,今天本来是想爬取微博网站的,但是微博的内容是通过ajax获取到的,用这种方法不能直接获取到。明天继续研究爬虫,争取爬取出微博的内容。
愿我们一起加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值