从入门到入狱-----做爬虫之前的准备(PyQuery)

PyQuery解析的方法和应用

from pyquery import PyQuery


def get_data():
    with open('spider.html', 'r', encoding='utf-8') as f:
        return f.read()


# 创建PyQuery的对象
# pyq=PyQuery(html的字符串)
pyq = PyQuery(get_data())
print(pyq)

# 获取标签
# PyQuery对象/标签对象(css选择器) 直接操作会作用于这个对象中所有的标签
# 获取名字
house_name = pyq('.items-name')
print(house_name.text())
# 遍历PyQuery对象得到的是这个容器的每个标签(i),此时的标签(i)是字符串类型
for i in house_name:
    print(i)  # 
# 如果要得到具体的内容可以再将标签(i)转换为PyQuery对象来得到内容
for i in house_name:
    print(PyQuery(i).text())  # 人居越秀紫云府

print('-'*30)
# 获取标签属性
# value属性  PyQuery对象.val()
input1=pyq('.input-search')
print(input1.val()) # 获取‘请输入楼盘名或地址’

print(input1.attr('value'))
# 普通属性
# PyQuery对象.attr(属性名)
print(input1.attr('value'))   # 获取‘请输入楼盘名或地址’
result=pyq('.pic>img')
print(result)
for x in result:
    print(PyQuery(x).attr('src'))

小试牛刀:结合上文,试试看看爬取的是什么

from pyquery import PyQuery
import requests

def get_data(html1,encodings='utf-8'):
    with open(html1, 'r',encoding=encodings) as f:
        return f.read()

def all_house():
    pyq = PyQuery(get_data('spider.html'))
    house_tage=pyq('.key-list.imglazyload>.item-mod')
    for x in house_tage:
        pqx=PyQuery(x)
        house_name=pqx('.items-name').text()
        house_area=pqx('.building-area').text()
        house_price=pqx('.price').text()
        house_title=pqx('.group-mark.soj').text()
        house={
            'name':house_name,
            'area':house_area,
            'price':house_price,
            'title':house_title
        }
        print(house)



def all_music():
    pyq = PyQuery('https://kuwo.cn/singers')
    musics=pyq('.artist_con')
    print(musics.text())

all_music()

你可能感兴趣的:(学习,笔记,python,爬虫)