Python爬虫日记1.0


Python爬虫日记(一)

在文件的顶部指定编码。

-*- coding: utf-8 -*-
-*- coding: gbk -*-

URL

  • Python 使用 + 操作符来拼接字符串,也可以使用 .join() 方法来拼接多个字符串。

  • 在Python中,.join() 是字符串对象的一个方法,用于将列表中的字符串连接成一个新的字符串,可以指定连接符。

# + 操作符
str1 = "Hello"
str2 = "World"
result = str1 + " " + str2
print(result)  # Output: Hello World
# .join
# 形式一
str_list = ["Hello", "World"]
result = " ".join(str_list)
print(result)  # Output: Hello World

# 形式二
def join(strings):
    return " ".join(strings)
    
str_list = ["我", "爱", "你"]
result = join(str_list)
print(result)  # Output: 我 爱 你

requests库

常用的requests库函数及其简要说明

  • requests.get(url, params=None, headers=None, cookies=None, timeout=None): 发送GET请求并返回一个Response对象。可以传递查询参数、请求头、Cookie和超时时间。

  • requests.post(url, data=None, json=None, headers=None, cookies=None, timeout=None): 发送POST请求并返回一个Response对象。可以传递表单数据、JSON数据、请求头、Cookie和超时时间。

  • response.status_code: 获取响应状态码。

  • response.headers: 获取响应头信息。

  • response.cookies: 获取响应中的Cookie信息。

  • response.url: 获取最终请求的URL。

  • response.text: 获取响应内容的文本形式。这个属性会自动根据响应内容的编码进行解码,并返回一个字符串对象。整个HTML结构

  • response.content: 获取响应内容的字节形式。这个属性返回一个包含响应内容字节的bytes对象,不进行解码。

  • response.json(): 将响应内容解析为JSON格式。如果响应内容是JSON格式的,这个方法会自动解析并返回一个对应的Python数据结构(通常是字典或列表)。

BeautifulSoup库

BeautifulSoup是一个用于解析HTML和XML文档的Python库,它提供了一些方便的函数来从网页中提取数据。

  • BeautifulSoup(html, ‘html.parser’): 创建一个BeautifulSoup对象,将HTML文档解析为树形结构。使用html.parser解析器来创建一个BeautifulSoup对象。这样就可以使用BeautifulSoup提供的方法来提取网页中的数据。

  • find(name, attrs, recursive, text, **kwargs): 在文档中查找第一个符合条件的标签,并返回该标签的BeautifulSoup对象。

  • find_all(name, attrs, recursive, text, limit, **kwargs): 在文档中查找所有符合条件的标签,并返回一个列表。

  • select(css_selector): 使用CSS选择器来查找匹配的元素,并返回一个列表。

  • .text: 获取标签内的文本内容。

  • .strip是 Python 中用于移除字符串两侧空白(包括空格、制表符、换行符等)的方法。.text.strip()是用来获取该标签内的文本内容,并去除首尾的空白字符。

  • .attrs: 获取标签的属性字典。

  • .get(attribute): 获取标签的指定属性值。

  • **.find_parent(name, attrs, recursive, text, kwargs): 查找当前标签的父标签。

  • **.find_next_sibling(name, attrs, recursive, text, kwargs): 查找当前标签的下一个同级标签。

  • **.find_previous_sibling(name, attrs, recursive, text, kwargs): 查找当前标签的前一个同级标签。

  • .find_all_next(name, attrs, recursive, text, kwargs): 查找当前标签之后的所有符合条件的标签。

  • .find_all_previous(name, attrs, recursive, text, kwargs): 查找当前标签之前的所有符合条件的标签。

  • .prettify(): 格式化输出BeautifulSoup对象,使其易于阅读。

attrs参数寻找标签属性

  • 使用attrs参数查找具有特定属性的标签
    div_with_attr = soup.find(‘div’, attrs={‘id’: ‘main-content’})
    print(“具有id为main-content的div标签:”, div_with_attr)
#使用 ['href'] 语法来获取这个属性的值。这样,就可以获取到 <a> 标签的 href 属性值。
#返回的是一个标签对象,我们想要获取这个标签的 href 属性值。
#因此,我们使用 ['href'] 语法来获取这个属性的值。这样,就可以获取到 <a> 标签的 href 属性值。

res_3 = title.find('a', href=True)['href']

#当我们使用find()方法查找某个标签时,可以通过指定属性来过滤结果。
#代码中,href=True 是过滤条件,表示我们只想获取具有 href 属性的 <a> 标签。

attrs和class_的区别

  • attrs和class_的区别,两者都是BeautifulSoup中用于查找标签的参数。
  1. attrs参数:attrs是一个字典,用于指定标签的属性和属性值。
    可以通过attrs参数指定任意的标签属性和属性值,不限于class属性。适用于查找具有特定属性及其属性值的标签,不仅限于class属性。
  2. class_参数:class_是一个特殊的参数,用于指定查找具有特定类名的标签。
    通常用于查找带有特定类的标签,语法更简洁,只需要传递类名字符串即可。用于查找带有指定类名的标签,比较方便。
使用attrs参数查找具有特定属性的标签
div_with_attr = soup.find('div', attrs={'id': 'main-content'})
print("具有id为main-content的div标签:", div_with_attr)

# 使用class_参数查找带有特定类的标签
paragraphs_with_class = soup.find_all('p', class_='paragraph')
print("所有带有paragraph类的p标签:", paragraphs_with_class)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值