for循环python爬虫_python爬虫 for循环只出来一条

在for循环外检查lt = soup.select('.tb_railway_list')是可以得到想要的 但是进行循环中的第一条时发现只能出来一条 小白 求问

import urllib.request

import urllib.parse

from bs4 import BeautifulSoup

import pandas as pd

class XieChengSpider(object):

url = 'https://bus.ctrip.com/busListn.html?'

def __init__(self,start_city,end_city,date):

#将上面的参数都保存为自己的成员属性

self.start_city = start_city

self.end_city = end_city

self.date = date

self.qiche = []

def handle_request(self,url_1):

headers = {

'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5773.400 QQBrowser/10.2.2059.400',

}

request = urllib.request.Request(url=url_1,headers=headers)

return request

def run(self):

data = {

'from':self.start_city,

'to':self.end_city,

'date':self.date,

}

string = urllib.parse.urlencode(data)

url_1 = self.url + string

request=self.handle_request(url_1)

#发送请求,获取内容

content = urllib.request.urlopen(request).read().decode()

#解析内容

self.parse_content(content)

def parse_content(self,content):

#生成对象

soup = BeautifulSoup(content,'lxml')

lt = soup.select('.tb_railway_list')

for tr in lt:

lt_time = tr.select('.railway_time')[0].text

print(lt_time)

"""

lt_price = table.select('.railway_seat>.price_r>span')[0].string

lt_start = table.select('.icon_start')[0].next_sibling

lt_end = table.select('.icon_end')[0].next_sibling

lt_data = {

'出发时间':lt_time,

'价格':lt_price,

'出发车站':lt_start,

'到达车站':lt_end

}

self.qiche.append(lt_data)

print(self.qiche)

#df = pd.DataFrame(self.qiche)

#print(df)

"""

def main():

start_city = input('请输入出发城市:')

end_city = input('请输入到达城市:')

date = input('请输入出发日期:')

#创建对象,启动爬取程序

spider=XieChengSpider(start_city,end_city,date)

spider.run()

if name == '__main__':

main()### 问题描述

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是一个简单的基于for循环Python爬虫示例,它使用requests和BeautifulSoup库来爬取一个网页上的所有链接: ```python import requests from bs4 import BeautifulSoup url = "https://www.example.com" response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") for link in soup.find_all("a"): href = link.get("href") if href.startswith("http"): print(href) ``` 这个示例会获取给定网页上的所有链接,并打印出所有以 "http" 开头的链接。你可以根据你需要爬取的网页和数据进行修改。 ### 回答2: for循环Python爬虫中经常用来遍历和操作一系列的数据或者执行重复的任务。 在爬虫中,我们经常会使用for循环来遍历多个URL链接,从中获取所需的数据。假设我们要爬取一个网站的多个页面,可以使用for循环来依次访问每个页面,然后提取需要的数据。例如: ```python import requests urls = ['https://example.com/page1', 'https://example.com/page2', 'https://example.com/page3'] for url in urls: response = requests.get(url) # 提取数据的代码 ``` 在上述代码中,使用for循环遍历了一个包含多个URL链接的列表。在每次循环中,我们使用requests库发送HTTP请求获取页面的响应,然后可以通过一些方法提取需要的数据。 除了遍历URL链接,for循环还可以用于遍历和处理网页中的元素,例如遍历网页中的文章列表、图片、表单等。通过使用合适的选择器,我们可以将网页中的元素提取出来,然后进行进一步的操作。 此外,在一些情况下,我们可能需要爬取多个网站的相同类型的数据。这时候也可以使用for循环来遍历这些网站的URL,然后进行爬取。 总之,for循环Python爬虫中是一种非常常用的控制结构,它可以帮助我们遍历、操作和提取数据,以及处理多个URL或者网页中的元素。它极大地简化了爬虫的编写过程,提高了爬虫的效率。 ### 回答3: for循环是一种在Python中用于重复执行特定代码块的循环结构。在爬虫中,for循环常用于对多个网页进行遍历和爬取。 通过for循环,我们可以依次遍历一个特定范围内的元素,如一个列表、元组、字符串或者生成器等。在爬虫中,我们可以使用for循环逐个爬取多个网页的内容。 例如,我们可以使用for循环遍历一个包含多个URL链接的列表。在每次循环中,我们可以通过发送HTTP请求获取网页内容,并对内容进行解析、提取数据或保存等操作。然后,我们可以继续进行下一次循环,直到遍历完所有的URL。 在使用for循环时,我们还可以结合其他条件语句和控制流程语句,如if语句和break语句,来控制循环的执行。 总之,for循环爬虫中常用的工具之一,它可以帮助我们在多个网页间进行遍历和爬取,并对每个网页的内容进行相应的处理。通过灵活运用for循环,我们可以高效地编写出功能完善的爬虫程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值