var cet4 = $("div.language li:nth-child(1) span.text").text().split(":")[1];
时间: 2024-05-17 16:18:29 浏览: 32
这行代码的作用是从HTML页面中获取CET-4的分数。
具体来说,它使用了jQuery选择器来选中包含CET-4分数的HTML元素。这个元素是在一个div元素中的,这个div元素有一个class为"language"。然后,它选中了这个div元素中的第一个li元素,因为这个li元素是包含CET-4分数的。最后,它使用text()方法来获取这个li元素中的文本内容,然后使用split()方法来分离出分数部分。
相关问题
分析这段python代码,import requests import parsel import csv import time f = open('book.csv', mode='a', encoding='utf-8-sig', newline='') csv_writer = csv.DictWriter(f, fieldnames=[ '标题', '推荐', '评价', '作者', '出版日期', '出版社', '原价', '售价', '折扣', '电子书价格', '详情页', ]) csv_writer.writeheader() for page in range(1,26): print(f"----------------------------正在爬取第{page}页数据--------------------------------") time.sleep(2.5) url = f"http://bang.dangdang.com/books/bestsellers/01.00.00.00.00.00-24hours-0-0-1-{page}" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.57' } response = requests.get(url=url, headers=headers) # print(response.text) selector = parsel.Selector(response.text) lis = selector.css('ul.bang_list li') for li in lis: title = li.css('.name a::attr(title)').get() href = li.css('.name a::attr(href)').get() comment = li.css('.star a::text').get() recommend = li.css('.tuijian::text').get() author = li.css('div:nth-child(5) a:nth-child(1)::attr(title)').get() date = li.css('div:nth-child(6) span::text').get() press = li.css('div:nth-child(6) a::text').get() price_n = li.css('div.price p:nth-child(1) span.price_n::text').get() price_r = li.css('div.price p:nth-child(1) span.price_r::text').get() price_s = li.css('div.price p:nth-child(1) span.price_s::text').get() ebook = li.css('.price_e .price_n::text').get() dit = { '标题': title, '推荐': comment, '评价': recommend, '作者': author, '出版日期': date, '出版社': press, '原价': price_r, '售价': price_n, '折扣': price_s, '电子书价格': ebook, '详情页': href, } csv_writer.writerow(dit)
这段代码实现了从当当网爬取畅销书的信息,并将信息保存到CSV文件中。代码主要分为以下几个部分:
1. 导入requests、parsel、csv和time四个模块。
2. 打开CSV文件,并设置编码和标题行。
3. 通过循环爬取前25页的畅销书信息,每一页有60本畅销书。
4. 构造请求URL和请求头,发送HTTP请求,获取响应。
5. 使用parsel解析响应,获取每本畅销书的信息。
6. 构造字典存储每本畅销书的信息,并使用csv.DictWriter将字典写入CSV文件。
7. 在每次循环结束后,暂停2.5秒,避免过于频繁的请求导致被网站封禁。
总体来说,这段代码实现了一个简单的网络爬虫,用于获取当当网畅销书的信息。需要注意的是,如果要将代码用于实际应用中,需要遵守相关法律法规,避免对网站造成不必要的影响。
将下列代码合并一下,使其看起来简洁些import requests from bs4 import BeautifulSoup headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.41'} url='https://www.ibiquges.com/xiaoshuodaquan/' strhtml=requests.get(url,headers=headers) soup=BeautifulSoup(strhtml.text,'lxml') info=soup.select('#main > div:nth-child(1) > ul') for item in info: print(item.get_text()) count = len(info[0].find_all('li')) print(count) info1=soup.select('#main > div:nth-child(3) > ul') for item in info1: print(item.get_text()) count1 = len(info1[0].find_all('li')) print(count1) info2=soup.select('#main > div:nth-child(5) > ul') for item in info2: print(item.get_text()) count2 = len(info2[0].find_all('li')) print(count2) info3=soup.select('#main > div:nth-child(7) > ul') for item in info3: print(item.get_text()) count3 = len(info3[0].find_all('li')) print(count3) info4=soup.select('#main > div:nth-child(9) > ul') for item in info4: print(item.get_text()) count4 = len(info4[0].find_all('li')) print(count4) info5=soup.select('#main > div:nth-child(11) > ul') for item in info5: print(item.get_text()) count5 = len(info5[0].find_all('li')) print(count5) info6=soup.select('#main > div:nth-child(13) > ul') for item in info6: print(item.get_text()) count6 = len(info6[0].find_all('li')) print(count6)
import requests
from bs4 import BeautifulSoup
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.41'}
url='https://www.ibiquges.com/xiaoshuodaquan/'
strhtml=requests.get(url,headers=headers)
soup=BeautifulSoup(strhtml.text,'lxml')
info_list = []
count_list = []
for i in range(1, 14, 2):
info = soup.select(f'#main > div:nth-child({i}) > ul')
for item in info:
print(item.get_text())
count = len(info[0].find_all('li'))
count_list.append(count)
info_list.append(info)
print(count_list)
阅读全文