'''
爬虫代码面向过程的封装
获取页面信息1,出入url,2,处理,编码转化,发送页面请求 3,输入:页面对象
保存抓取内容 1,输入:元素内容列表
2,处理:创建一个文件,写入元素内容,保存并关闭文件
3,输出:抓取文件内容
一个页面抓取,多个页面的抓取,灵活页面抓取'''
import requests
from lxml import etree
def get_page(url):
# url = 'http://www.xxxxxxx.com'
url=url
response=requests.get(url)
code=response.apparent_encoding
# print(code)
response.encoding='gbk'
content=response.text
# print(content)
return content
'''提取页面元素,1,输入页面对象,
2,处理:转化为dom格式,通过xpath进行元素定位
3,输出:元素内容列表'''
def get_element(content):
doc=etree.HTML(content)
tmp=''
for i in range(1, 11):
element = doc.xpath('/html/body/div[6]/div[1]/div[' + str(i) + ']/p/text()')[0] # 0是直接去list第一个数值 注意i是一个数字,url转化需要切片+转化为字符串
tmp=tmp+str(i)+element+'\n'
# print(tmp)
return tmp
'''保存抓取内容 1,输入:元素内容列表
2,处理:创建一个文件,写入元素内容,保存并关闭文件
3,输出:抓取文件内容'''
def save_element(tmp):
file=open('pop_test1.txt','w')
file.write(tmp)
file.close()
if __name__ == '__main__':
url='http://www.xxxx.html'
content=get_page('http://www.xxxxx.html')
tmp=get_element(content)
save_element(tmp)
python_爬虫代码面向过程的封装
最新推荐文章于 2023-03-31 12:36:12 发布