爬虫/csv/BeautifulSoup

import requests用法

get方法

	import requests
	response = requests.get("https://baidu.com/")
	print(type(response))#打印response类型
	print(response.status_code)#打印状态码
	#200是正常404是找不到网页502是代码出错
	print(response.text)#打印内容
	print(type(response.text))#字符串类型

带参数GET请求

	import requests
	response = requests.get("https://baidu.com/get?name=germey&age=22")
	print(response.text)#参数将传入网页的args中

各种其他方法

	import requests
	response = requests.post('https://baidu.com/post')
	requests.put('https://baidu.com/put')
	requests.delete('https://baidu.com/delete')
	requests.head('https://baidu.com/get')
	requests.options('https://baidu.com/get')

增加headers

当浏览器设置阻拦时,需要增加headers,否则将无法爬出来(报404)
headers可在对应网页查找net-work的user-agent中找到

	import requests

	headers = {
    	'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
	}
	response = requests.get("https://www.zhihu.com/explore", headers=headers)
	print(response.text)

BeautifulSoup 引用

	file = open("D:\\untitled\\fang_yi.html","r",encoding="utf-8")
	demo = file.read()
	file.close()
	from bs4 import BeautifulSoup
	soup = BeautifulSoup(demo,"html.parser")

find_all找到标签下的内容

find_all 返回的是数组,只有数组内的元素才能使用点find_all

	todaydata = soup.find_all('div',class_="todaydata")[7]#根据代码数出中国疫区在第八个
	div = todaydata.find_all('div',class_="prod")#通过点find_all找出这个数组
	anchors = []#定义一个新字典
	for each in div:     #在每个div里面找其中元素,由于打印后发现each里面只有一个,所以直接找到0号元素
    	area = each.find_all('span',class_="area")[0].text
    	confirm = each.find_all('span',class_="confirm")[0].text
    	dead = each.find_all('span',class_="dead")[0].text
    	cured = each.find_all('span',class_="cured")[0].text
    	anchor = {'area':area, 'confirm':confirm, 'dead':dead, 'cured':cured }
    	anchors.append(anchor)#将每一个anchor加入字典中

soup.find_all(‘div’) 与 直接soup('div ') / soup.div一致

关于寻找标签的其他做法

找a标签 ————>你将获得第一个a标签

	soup.a

你还可以寻找form标签,或者div标签。
如果要寻找其中的如href的具体内容

	soup.a["href"]

如果使用find来寻找,你也将获得他的第一个标签

	soup.find('div')

import csv 用法

将字典使用csv格式写入

	with open('D:\\untitled\\fang_yi.csv', 'w', newline='') as csv_file:#with可以不用关闭,newline=""是不用空行
    	csv_writer = csv.writer(csv_file)
    	for value in anchors:
        	csv_writer.writerow([value['area'], value['confirm'], value['dead'], value['cured']]) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值