网页爬取步骤
1.确定目标网站和数据
定义目标网站:选择需要爬取数据的网站,明确要获取的数据类型,例如文本、图片、视频等。
分析网页结构:使用浏览器的开发者工具(F12)检查网页的HTML结构,确定数据所在的标签和属性。
2. 准备环境
安装必要的库:常用的爬虫库包括requests、BeautifulSoup、Scrapy、Selenium等。
#法一:安装对应的模块,win+r,然后输入cmd打开命令提示框
输入
pip install 模块名
#法二:在pycharm对应的设置中添加
3.发送请求
构建请求:使用requests库向目标网站发送HTTP请求获取网页内容。
import requests
url_1 ='http://www.douban.com/'
r =requests.get(url)
处理反爬措施:如果网站有反爬虫机制,可以通过添加请求头、使用代理、或者模拟浏览器行为来绕过。
import requests
url_1 = 'http://www.douban.com/'
headers = { 'User-Agent':'Mozilla/5.0 (Macintosh; Intel ) AppleWebKit/537.39 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.39'}
kw = {'start':'0','filter':''} #网页参数,百度搜索 '爬虫'
r = requests.get(url_1,headers = headers,params = kw)
#print(r.text)
#在输出结果中搜索 爬虫,若没有则说大概率明解析时用的编码和网页编码不一致,需手动设置编码格式,使其与浏览器一致。
#print(r.encoding) 可以查看返回结果的编码
r.encoding = 'utf-8'
print(r.text)
4. 解析网页内容
使用BeautifulSoup解析HTML:将获取到的HTML内容解析为可操作的树结构,方便数据提取。
soup = Beautifulsoup(r.text,'html.parser')
提取数据:根据之前分析的网页结构,使用BeautifulSoup的方法提取所需数据。
#使用attrs参数查找具有特定属性的标签
div_with_attr = soup.find('div', attrs={'id': 'main-content'})
print("具有id为main-content的div标签:", div_with_attr)
#使用class_参数查找带有特定类的标签
paragraphs_with_class = soup.find_all('p', class_='paragraph')
print("所有带有paragraph类的p标签:", paragraphs_with_class)
5.存储数据
存储到本地文件:将提取的数据存储为CSV、JSON或数据库。
存储到数据库:使用数据库如MySQL、MongoDB存储数据。
#以豆瓣电影TOP250为例,将返回字段添加到列表中,最后存储到EXCEL中。
movies = []
movies.append([name,score,number,review,link])
import openpyxl
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title ='电影TOP250'
for item in movies:
sheet.append(item)
wb.save('movies.xlsx')
print('成功输出')
6. 处理动态内容(如有)
使用Selenium模拟浏览器操作:如果网页是通过JavaScript动态加载的,可以使用Selenium模拟浏览器进行操作和数据获取。
7. 自动化和定时运行
编写脚本自动化:使用Python脚本完成上述所有步骤,并添加异常处理。
使用定时任务:如需要定期获取数据,可以使用任务调度工具如cron(Linux)或任务计划程序(Windows)。