Python爬虫实现网页数据获取

安装requests_html

python爬虫需要安装额外的包requests_html解析器,官网地址为(http://html.python-requests.org/)
使用pip命令安装requests_html,打开终端输入:

pip3 install requests_html

有时可能pip版本过低会报错,安装不上requests_html,可以使用下面命令升级pip至最新版本

升级pip

python -m pip install --upgrade pip

requests_html安装完成之后就可以进行网页数据获取了

获取网页内容

from requests_html import HTMLSession
session = HTMLSession()
url = 'http://quote.eastmoney.com/stock_list.html'
h = session.get(url)
h.html.text     ->  获取网页文本内容
h.html.html     ->  获取网页内容
h.html.links    ->  获取网页中包含的所有的链接(相对地址)
h.html.absolute_links ->  获取网页中包含的所有的链接(绝对地址)

#CSS语法获取元素
h.html.find('img')  -> 获取所有img标签
h.html.find('img', first=True)  -> 获取第一个img标签
#获取标签的属性
elements = h.html.find('a', first=False)
for e in elements:
	print(e.attrs['href'])

获取链接URL

from requests_html import HTMLSession
session = HTMLSession()
url = 'https://www.jianshu.com/u/1f9e71a85238'
requests = session.get(url=my_url)
titles = requests.html.find('a.title')
for i,title in enumerate(titles):
    print(f'{i+1} {title.text}:https://www.jianshu.com{title.attrs["href"]}')

从本地文件或网页字符串中获取数据

from requests_html import HTML
doc = ''
#读取本地书签文件
with open('C:/Users/Desktop/bookmarks.html', encoding='utf-8') as f:
	doc = f.read()
#创建HTML对象
html = HTML(html=doc)
titles = html.find('a')
#读取书签链接并格式化输出markdown链接,[text](link)
for i,title in enumerate(titles):
    print(f'[{title.text}]({title.attrs["href"]})')

你可能感兴趣的:(python)