赞
踩
1、快捷键查看网页源代码
笔记本的话用Fn+F12,可以调出来开发者工具,也就可以看到源代码了。
2、用右键快捷菜单查看网页源代码
使用右键快捷菜单看到的网页源代码和使用开发者
3、使用Request库来获取源代码:知乎
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)' \
' AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'}
url = 'https://www.zhihu.com/'
res = requests.get(url, headers = headers).text
print(res)
补充说明
1.解决“复制网址后中文变成了英文和数字”的问题,这是因为浏览器默认识别的都是英文字符,中文字符则需要转换后才能识别,而这些字母、数字、百分号组成的内容可以直接理解成网址名的中文,因此可以直接将“=”后面的内容修改成为中文字符,例如“知乎”
1、利用开发者工具查看
由“获取网络源代码”中的F12,打开开发者工具,选中一条连接,可以在选项卡中看到对应的网址和标题,用同样的方法可以查看日期和来源等信息。(注意善用三角箭头)
2、利用右键快捷菜单查看
3、在pycharm中查看
也就是在结果输出区域,按快捷键Ctrl+F打开搜索框,搜索需要的信息
Selenium库与Request库不同点在于Selenium库可以访问许多动态的网页,比如说股票网站等等,但是由于它需要模拟人们访问浏览器而Request库是直接访问,因此速度相对会慢一些,需要我们在实操的过程中多样结合。
1、访问以及关闭页面
通过以下代码即可访问网站,相当于模拟人打开一个浏览器,然后访问指定网址
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.zhihu.com/')
如果在上述浏览器中加入如下代码,就能关闭模拟浏览器
browser.quit()
2、获取网页源代码
使用模拟浏览器打开指定的网址之后,可以通过如下代码获取浏览器中经过动态渲染的网页源代码
data = browser.page_source
在我的理解里面,网页的基本结构就是一个大框套着一个中框,一个中框再套着一个小框,这样的一种层级关系,如果前面有三角形箭头,可以点击箭头将其打开,后面还有内容说明,文本内容一般都在最小的框里。
一个好玩的小方法-建立一个简单的网页
首先创建一个文本文档,可以理解成记事本,然后输入
<p>hello world</p>
保存并关闭文件,将文件名后缀改为“.html”,这个文件就变成HTML文件,也即是网页文件
1、标题,段落,链接
我不知道为什么打尖括号弄不进去,就只好省略了,等后期找到方法了再来更改
h1~h6 定义标签,主要是大小的区别
p 定义段落
a 定义链接
2、区块
div 来定义区块
3、class属性和id属性
class 属性就可以理解成C语言里面的类,结构体那种
id 属性就可以理解成更加详细分类的一个指标
import requests import re from urllib.request import urlretrieve headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ' 'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'} url = "http://yxy.njucm.edu.cn/3011/list.htm" # 南京中医药大学药学院师资力量的网址 res = requests.get(url, headers = headers) # 使用requests.get()函数访问该网址 res.encoding = 'utf-8' # 使用'utf-8'的编码格式来重新编码及解码 res = res.text # 观察网页源码依次分析得到各位导师对应的姓名、网址 h_name = '<a .*?;" ' 'href=".*?" target="_self" sudyfile-attr=.*? textvalue=.*?>(.*?)</a>' h_url = '<a style=.*?;" href="(.*?)" target="_self" sudyfile-attr' final_name = re.findall(h_name, res) final_name.insert(0, '马宏跃') # 通过输出列表数量并观察网页源码可知,代码中马宏跃老师的代码和别人是不一样的,所以我手动添加 final_url = re.findall(h_url, res) # 清洗数据,去除导师名字中间的符号 for i in range(len(final_name)): if len(final_name[i]) > 4: temp = final_name[i] temp = temp[0] + temp[-1] final_name[i] = temp # 爬取照片、介绍、联系方式 '''先访问每位老师对应的信息网址 在网址里面爬取老师的介绍,联系方式 并且下载老师的照片存放到文件夹中''' final_introduce = ['0'] for i in range(len(final_name)): # 读取每位老师对应的网址 hq_url = final_url[i] hq_res = requests.get(hq_url, headers=headers) # 使用requests.get()函数访问该网址 hq_res.encoding = 'utf-8' # 使用'utf-8'的编码格式来重新编码及解码 hq_res = hq_res.text # 读取介绍内容 h_introduce = '<meta name="description" content="(.*?)" />' final_introduce.append((re.findall(h_introduce, hq_res))[1]) # 读取照片所在的文件并下载到指定文件夹 h_picture = '<img .*?src="(.*?)"' h_picture = re.findall(h_picture, hq_res) h_picture = str('http://yxy.njucm.edu.cn' + str(h_picture[0])) hq_res = requests.get(h_picture) file = open('D:\威\药学院博导_照片' + final_name[i] + '.jpg', 'wb') file.write(hq_res.content) file.close() # 输出导师名字加信息所在的网址 final_introduce.remove('0') for i in range(len(final_name)): print(str(i + 1) + '.' + final_name[i]) print(final_url[i]) print(final_introduce[i])
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。